aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-ssa-loop-im.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5f482cc..e2f76be 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2004-09-28 Diego Novillo <dnovillo@redhat.com>
+ * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
+ Skip constant arguments.
+
+2004-09-28 Diego Novillo <dnovillo@redhat.com>
+
* tree-ssa-alias.c (create_name_tags): If PTR points to a
volatile type, mark the tag volatile.
(get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index c7a6076..e6b507e 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -982,8 +982,9 @@ single_reachable_address (struct loop *loop, tree stmt,
case PHI_NODE:
for (i = 0; i < (unsigned) PHI_NUM_ARGS (stmt); i++)
- maybe_queue_var (PHI_ARG_DEF (stmt, i), loop,
- seen, queue, &in_queue);
+ if (TREE_CODE (PHI_ARG_DEF (stmt, i)) == SSA_NAME)
+ maybe_queue_var (PHI_ARG_DEF (stmt, i), loop,
+ seen, queue, &in_queue);
break;
default: