aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-07-19 14:16:54 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-07-19 14:16:54 +0000
commit13e889530d0da219afcbcd78c768688593dd5257 (patch)
tree30e3412617c2b0809920e06ce7f81591d03f4515 /gcc/tree-ssa-sccvn.c
parent1caf0482104f4b8a3ea0109ae95dd19cf39c52a2 (diff)
downloadgcc-13e889530d0da219afcbcd78c768688593dd5257.zip
gcc-13e889530d0da219afcbcd78c768688593dd5257.tar.gz
gcc-13e889530d0da219afcbcd78c768688593dd5257.tar.bz2
gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case, handle all tcc_constant bases and valueize SSA names.
2016-07-19 Richard Biener <rguenther@suse.de> * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case, handle all tcc_constant bases and valueize SSA names. * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle tcc_constant bases. * c-c++-common/vector-subscript-6.c: New testcase. * c-c++-common/vector-subscript-7.c: Likewise. From-SVN: r238475
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index e685342..e889d60 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -1337,6 +1337,11 @@ fully_constant_vn_reference_p (vn_reference_t ref)
unsigned i;
for (i = 0; i < operands.length (); ++i)
{
+ if (TREE_CODE_CLASS (operands[i].opcode) == tcc_constant)
+ {
+ ++i;
+ break;
+ }
if (operands[i].off == -1)
return NULL_TREE;
off += operands[i].off;