aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-operands.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2006-12-30 13:02:09 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2006-12-30 12:02:09 +0000
commitd586d6d1f6afb26b105aca56336217594549bf80 (patch)
treea1ec2dcdcfc29c5e53fc7abed01106497d065f6b /gcc/tree-ssa-operands.c
parent4b73962b7e164ed118806f9c70bc75a4799df467 (diff)
downloadgcc-d586d6d1f6afb26b105aca56336217594549bf80.zip
gcc-d586d6d1f6afb26b105aca56336217594549bf80.tar.gz
gcc-d586d6d1f6afb26b105aca56336217594549bf80.tar.bz2
tree-ssa-alias.c (create_structure_vars): When in SSA, update operand caches.
* tree-ssa-alias.c (create_structure_vars): When in SSA, update operand caches. * tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken bitmap. From-SVN: r120284
Diffstat (limited to 'gcc/tree-ssa-operands.c')
-rw-r--r--gcc/tree-ssa-operands.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index d47d19c..9d4b84c 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -2337,6 +2337,9 @@ build_ssa_operands (tree stmt)
makes no memory references. */
ann->has_volatile_ops = false;
ann->references_memory = false;
+ /* Just clear the bitmap so we don't end up reallocating it over and over. */
+ if (ann->addresses_taken)
+ bitmap_clear (ann->addresses_taken);
start_ssa_stmt_operands ();
parse_ssa_operands (stmt);
@@ -2344,6 +2347,8 @@ build_ssa_operands (tree stmt)
operand_build_sort_virtual (build_vdefs);
finalize_ssa_stmt_operands (stmt);
+ if (ann->addresses_taken && bitmap_empty_p (ann->addresses_taken))
+ ann->addresses_taken = NULL;
/* For added safety, assume that statements with volatile operands
also reference memory. */
if (ann->has_volatile_ops)