]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR rtl-optimization/52528 (combine bug (powerpc testcase))
authorChung-Lin Tang <cltang@codesourcery.com>
Thu, 15 Mar 2012 10:04:12 +0000 (10:04 +0000)
committerChung-Lin Tang <cltang@gcc.gnu.org>
Thu, 15 Mar 2012 10:04:12 +0000 (10:04 +0000)
2012-03-15  Chung-Lin Tang  <cltang@codesourcery.com>

Backport from mainline
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: r185425

gcc/ChangeLog
gcc/combine.c

index 33767fa4eb532de73e210294e0a66153c179f487..4ade03cc63751f669ea28bfd9cdfe02080ea98d4 100644 (file)
@@ -1,3 +1,12 @@
+2012-03-15  Chung-Lin Tang  <cltang@codesourcery.com>
+
+       Backport from mainline
+       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-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        Backport from mainline
index 74ec1e123fecb3be35930788f79d29757df7299a..d1fdc96787c8bbfec20d561527d3e1e2e9e20f35 100644 (file)
@@ -1788,6 +1788,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);