aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-11-14 18:46:50 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-11-14 18:46:50 +0100
commit8413ca874e088161ca0fbc3bf3a98cffc45564f3 (patch)
treea5f3f2ac60cf67edecc73331df1bbb55654423a3 /gcc/cgraph.c
parentab9a4330370dccbb9559c4edf032f49e925e951c (diff)
downloadgcc-8413ca874e088161ca0fbc3bf3a98cffc45564f3.zip
gcc-8413ca874e088161ca0fbc3bf3a98cffc45564f3.tar.gz
gcc-8413ca874e088161ca0fbc3bf3a98cffc45564f3.tar.bz2
ipa-pure-const.c (struct funct_state_d): Add can_free field.
* ipa-pure-const.c (struct funct_state_d): Add can_free field. (varying_state): Add true for can_free. (check_call): For builtin or internal !nonfreeing_call_p set local->can_free. (check_stmt): For asm volatile and asm with "memory" set local->can_free. (analyze_function): Clear local->can_free initially, continue calling check_stmt until all flags are computed, dump can_free flag. (pure_const_write_summary): Write can_free flag. (pure_const_read_summary): Read it back. (propagate_pure_const): Propagate also can_free flag, set w->nonfreeing_fn if it is false after propagation. * cgraph.h (cgraph_node): Add nonfreeing_fn member. * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h. (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set. Also return true for IFN_ABNORMAL_DISPATCHER. * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag. * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag. (input_overwrite_node): Read it back. From-SVN: r217582
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r--gcc/cgraph.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 8dcccbf..a66c9c0 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -1995,6 +1995,8 @@ cgraph_node::dump (FILE *f)
fprintf (f, " tm_clone");
if (icf_merged)
fprintf (f, " icf_merged");
+ if (nonfreeing_fn)
+ fprintf (f, " nonfreeing_fn");
if (DECL_STATIC_CONSTRUCTOR (decl))
fprintf (f," static_constructor (priority:%i)", get_init_priority ());
if (DECL_STATIC_DESTRUCTOR (decl))