summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-20 17:46:39 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-20 17:46:39 +0000
commita18d30a8e57888e0861a1e07d5002517ca96dd26 (patch)
treecc32771b53fbcf125c821f1a5fe9f6e15fba1191
parent67313c34cc78649a549bfac9e2c4fcab34c70c98 (diff)
downloadgcc-a18d30a8e57888e0861a1e07d5002517ca96dd26.tar.gz
2006-12-20 Andrew Pinski <pinskia@gmail.com>
* tree-gimple.c (is_gimple_min_invariant): Treat constant vector CONSTRUCTORs as min invariants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120079 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-gimple.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4f145939528..e247f0b1218 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-20 Andrew Pinski <pinskia@gmail.com>
+
+ * tree-gimple.c (is_gimple_min_invariant): Treat constant vector
+ CONSTRUCTORs as min invariants.
+
2006-12-20 Joseph Myers <joseph@codesourcery.com>
* rtlanal.c (struct subreg_info, subreg_get_info, subreg_nregs):
diff --git a/gcc/tree-gimple.c b/gcc/tree-gimple.c
index f3a5db7c2ed..abef0e20539 100644
--- a/gcc/tree-gimple.c
+++ b/gcc/tree-gimple.c
@@ -183,6 +183,13 @@ is_gimple_min_invariant (tree t)
case VECTOR_CST:
return true;
+ /* Vector constant constructors are gimple invariant. */
+ case CONSTRUCTOR:
+ if (TREE_TYPE (t) && TREE_CODE (TREE_TYPE (t)) == VECTOR_TYPE)
+ return TREE_CONSTANT (t);
+ else
+ return false;
+
default:
return false;
}