aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-06-28 13:17:20 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-06-28 13:17:20 +0000
commit15c151967dd1cde61b79d26374f608f63a29d411 (patch)
treec154f74717a3c268c9eb1d50886dc65b0a3c38db /gcc/tree-flow.h
parentff1c393bd32f3b018957ba9f552e344ab040f309 (diff)
downloadgcc-15c151967dd1cde61b79d26374f608f63a29d411.zip
gcc-15c151967dd1cde61b79d26374f608f63a29d411.tar.gz
gcc-15c151967dd1cde61b79d26374f608f63a29d411.tar.bz2
tree-ssa-structalias.c (callused_id, [...]): Add.
2008-06-28 Richard Guenther <rguenther@suse.de> * tree-ssa-structalias.c (callused_id, var_callused, callused_tree): Add. (handle_pure_call): New function. (find_func_aliases): Call it. (find_what_p_points_to): Handle the call-used set. (clobber_what_escaped): Likewise. (compute_call_used_vars): New function. (init_base_vars): Init the call-used variable. (do_sd_constraint): Do not propagate the solution from CALLUSED but use CALLUSED as a placeholder. (solve_graph): Likewise. * tree-flow-inline.h (gimple_call_used_vars): New function. * tree-flow.h (struct gimple_df): Add call_used_vars bitmap. (compute_call_used_vars): Declare. * tree-ssa-alias.c (set_initial_properties): Call compute_call_used_vars. (reset_alias_info): Clear call-used variables. (add_call_clobber_ops): Assert we are not called for const/pure functions. Remove handling of them. (add_call_read_ops): Handle pure functions by adding the call-used set of variables as VUSEs. * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap. (delete_tree_ssa): Free it. * tree-dfa.c (remove_referenced_var): Clear the var from the call-used bitmap. * gcc.dg/tree-ssa/pr24287.c: Remove XFAIL. From-SVN: r137222
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index ded7687..9610547 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -162,6 +162,10 @@ struct gimple_df GTY(())
REFERENCED_VARS (I) is call-clobbered. */
bitmap call_clobbered_vars;
+ /* Call-used variables in the function. If bit I is set, then
+ REFERENCED_VARS (I) is call-used at pure function call-sites. */
+ bitmap call_used_vars;
+
/* Addressable variables in the function. If bit I is set, then
REFERENCED_VARS (I) has had its address taken. Note that
CALL_CLOBBERED_VARS and ADDRESSABLE_VARS are not related. An
@@ -1174,6 +1178,7 @@ tree gimple_fold_indirect_ref (tree);
/* In tree-ssa-structalias.c */
bool find_what_p_points_to (tree);
bool clobber_what_escaped (void);
+void compute_call_used_vars (void);
/* In tree-ssa-live.c */
extern void remove_unused_locals (void);