aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2004-11-25 20:24:59 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>2004-11-25 20:24:59 +0000
commite288e2f51bed5d45a8a89479bc2f98337bc18c80 (patch)
treee6a3919cd01a314a36fdb8c06e651c13ea0543de /gcc/tree-flow.h
parent5257260c2bac40d3691c6054520d52aced302b65 (diff)
downloadgcc-e288e2f51bed5d45a8a89479bc2f98337bc18c80.zip
gcc-e288e2f51bed5d45a8a89479bc2f98337bc18c80.tar.gz
gcc-e288e2f51bed5d45a8a89479bc2f98337bc18c80.tar.bz2
re PR tree-optimization/18587 (build_v_may_defs and build_vuses can be improved when adding)
2004-11-25 Andrew Macleod <amacleod@redhat.com> PR tree-optimization/18587 * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag call clobbered caches as invalid. * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New. Flag indicating whether the call clobbered operand cache is valid. (ssa_ro_call_cache_valid): New. Flag indicating whether the pure/const call operand cache is valid. (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New. cached list of operands for cached call virtual operands. (clobbered_aliased_loads, clobbered_aliased_stores, ro_call_aliased_load): New. flags caching whether alias bits are to be set in call stmt's. */ (fini_ssa_operands): Remove call operand caches if present. (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand. (get_call_expr_operands): Add call clobbered variables first. (add_stmt_operand): Take stmt annotation rather than stmt as a param. (add_call_clobber_ops, add_call_read_ops): Use the call operand cache if it is valid, otherise fill the cache. * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern. * tree-flow.h (struct var_ann_d): Add in_vuse_list and in_v_may_def_list bits. * tree-ssa-operands.c (cleanup_v_may_defs): New. Clear the in_list bits for the v_may_def elements and empty the operand build array. (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant VUSES by checking the in_v_may_def_list bit. (append_v_may_def, append_vuse): Use the in_list bit rather than scanning the array for duplicates. From-SVN: r91305
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 96e368d..9847eaf 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -166,6 +166,14 @@ struct var_ann_d GTY(())
states. */
ENUM_BITFIELD (need_phi_state) need_phi_state : 2;
+ /* Used during operand processing to determine if this variable is already
+ in the vuse list. */
+ unsigned in_vuse_list : 1;
+
+ /* Used during operand processing to determine if this variable is already
+ in the v_may_def list. */
+ unsigned in_v_may_def_list : 1;
+
/* An artificial variable representing the memory location pointed-to by
all the pointers that TBAA (type-based alias analysis) considers
to be aliased. If the variable is not a pointer or if it is never