diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-07 15:33:34 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-07 15:33:34 +0000 |
commit | 023a28e120c57f54f969da8f49b2f30df4a6ec2d (patch) | |
tree | 27f7a4b02c0fe509806c2b0ca767116cf3ebf7fd /gcc/ipa-ref.h | |
parent | 5b56ff927051f05a1ece31e1f484e62594c7ec74 (diff) | |
download | gcc-023a28e120c57f54f969da8f49b2f30df4a6ec2d.tar.gz |
* cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
if caller is noreturn.
* ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
* ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
* ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
* ipa-pure-const.c (check_decl): Add IPA parameter.
(state_from_flags): New function.
(better_state, worse_state): New functions.
(check_call): When in IPA mode, do not care about callees.
(check_load, check_store): Update.
(check_ipa_load, check_ipa_store): New.
(check_stmt): When in IPA mode, use IPA checkers.
(analyze_function): Use state_from_flags.
(propagate): Check indirect edges and references.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160380 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-ref.h')
-rw-r--r-- | gcc/ipa-ref.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ipa-ref.h b/gcc/ipa-ref.h index 98912db1851..2be73536f8e 100644 --- a/gcc/ipa-ref.h +++ b/gcc/ipa-ref.h @@ -88,4 +88,5 @@ void ipa_dump_references (FILE *, struct ipa_ref_list *); void ipa_dump_refering (FILE *, struct ipa_ref_list *); void ipa_clone_references (struct cgraph_node *, struct varpool_node *, struct ipa_ref_list *); void ipa_clone_refering (struct cgraph_node *, struct varpool_node *, struct ipa_ref_list *); +bool ipa_ref_cannot_lead_to_return (struct ipa_ref *); |