re PR rtl-optimization/52528 (combine bug (powerpc testcase))
authorChung-Lin Tang <cltang@codesourcery.com>
Sat, 10 Mar 2012 14:57:30 +0000 (14:57 +0000)
committerChung-Lin Tang <cltang@gcc.gnu.org>
Sat, 10 Mar 2012 14:57:30 +0000 (14:57 +0000)
2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>

PR rtl-optimization/52528
* combine.c (can_combine_p): Add setting of subst_low_luid
before call to expand_field_assignment().

From-SVN: r185175

gcc/ChangeLog
gcc/combine.c

index 06d562bff0238450511ad227e9989ceee746232c..b5e3b36ce76a8a88948ac366ea4ede9e6ee76d8f 100644 (file)
@@ -1,3 +1,9 @@
+2012-03-10  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       PR rtl-optimization/52528
+       * combine.c (can_combine_p): Add setting of subst_low_luid
+       before call to expand_field_assignment().
+
 2012-03-09  Sandra Loosemore  <sandra@codesourcery.com>
 
        * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
index d06de04041e8f227e05eb472f14ca7ef7ee305b4..ab825e4ee984affff1c4f5a394bb2aa788c456b8 100644 (file)
@@ -1822,6 +1822,10 @@ can_combine_p (rtx insn, rtx i3, rtx pred ATTRIBUTE_UNUSED,
   if (set == 0)
     return 0;
 
+  /* The simplification in expand_field_assignment may call back to
+     get_last_value, so set safe guard here.  */
+  subst_low_luid = DF_INSN_LUID (insn);
+
   set = expand_field_assignment (set);
   src = SET_SRC (set), dest = SET_DEST (set);