aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2006-04-08 21:50:04 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2006-04-08 21:50:04 +0000
commit9ccfe0cda479d1f5feae5a1cd20896dfe0c9a04a (patch)
tree32fe72df7eca620b267dafba776d6c8ce0e1432a /gcc/tree-ssa-alias.c
parente0f931d27f9e0b7daee2d05a89ccf99c814f0429 (diff)
downloadgcc-9ccfe0cda479d1f5feae5a1cd20896dfe0c9a04a.zip
gcc-9ccfe0cda479d1f5feae5a1cd20896dfe0c9a04a.tar.gz
gcc-9ccfe0cda479d1f5feae5a1cd20896dfe0c9a04a.tar.bz2
tree.h (tree_memory_tag): Add old_used_alone.
2006-04-08 Daniel Berlin <dberlin@dberlin.org> * tree.h (tree_memory_tag): Add old_used_alone. (SMT_OLD_USED_ALONE): New macro. * tree-ssa-alias.c (recalculate_used_alone): Stop marking things for renaming unnecessarily. From-SVN: r112789
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r--gcc/tree-ssa-alias.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index f0d16d4..3ad4b0f 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -443,7 +443,10 @@ recalculate_used_alone (void)
updating_used_alone = true;
FOR_EACH_REFERENCED_VAR (var, rvi)
if (TREE_CODE (var) == SYMBOL_MEMORY_TAG)
- SMT_USED_ALONE (var) = 0;
+ {
+ SMT_OLD_USED_ALONE (var) = SMT_USED_ALONE (var);
+ SMT_USED_ALONE (var) = 0;
+ }
/* Walk all the statements.
Calls get put into a list of statements to update, since we will
@@ -476,7 +479,11 @@ recalculate_used_alone (void)
if (!SMT_USED_ALONE (svar))
{
SMT_USED_ALONE (svar) = true;
- mark_sym_for_renaming (svar);
+
+ /* Only need to mark for renaming if it wasn't
+ used alone before. */
+ if (!SMT_OLD_USED_ALONE (svar))
+ mark_sym_for_renaming (svar);
}
}
}