re PR middle-end/68221 (libgomp reduction-11/12 failures)
authorRichard Biener <rguenther@suse.de>
Tue, 24 Nov 2015 09:17:40 +0000 (09:17 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 24 Nov 2015 09:17:40 +0000 (09:17 +0000)
2015-11-24  Richard Biener  <rguenther@suse.de>

PR middle-end/68221
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
use mem_ref_offset.

From-SVN: r230793

gcc/ChangeLog
gcc/tree-ssa-sccvn.c

index b3538c487351aa0aeae40178480ee53acc44d431..b8e7129893b47aeb906cc8b509e654f88b5deb99 100644 (file)
@@ -1,3 +1,9 @@
+2015-11-24  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/68221
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
+       use mem_ref_offset.
+
 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
 
        PR rtl-optimization/68381
index 9a55b5b51613c70e062d947dc5a5464df8dcc54a..0c7fd725255b583b0534c0be58f8ee0af4eebfaf 100644 (file)
@@ -750,8 +750,11 @@ copy_reference_ops_from_ref (tree ref, vec<vn_reference_op_s> *result)
        case MEM_REF:
          /* The base address gets its own vn_reference_op_s structure.  */
          temp.op0 = TREE_OPERAND (ref, 1);
-         if (tree_fits_shwi_p (TREE_OPERAND (ref, 1)))
-           temp.off = tree_to_shwi (TREE_OPERAND (ref, 1));
+           {
+             offset_int off = mem_ref_offset (ref);
+             if (wi::fits_shwi_p (off))
+               temp.off = off.to_shwi ();
+           }
          temp.clique = MR_DEPENDENCE_CLIQUE (ref);
          temp.base = MR_DEPENDENCE_BASE (ref);
          temp.reverse = REF_REVERSE_STORAGE_ORDER (ref);