OSDN Git Service

PR rtl-optimization/41064
authorhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Aug 2009 11:36:45 +0000 (11:36 +0000)
committerhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Aug 2009 11:36:45 +0000 (11:36 +0000)
* reload1.c (reload_as_needed): Don't call extract_insn
for known invalid replacements after calling
validate_replace_rtx_group and verify_changes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150751 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reload1.c

index e48cbcd..0862182 100644 (file)
@@ -1,3 +1,10 @@
+2009-08-14  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR rtl-optimization/41064
+       * reload1.c (reload_as_needed): Don't call extract_insn
+       for known invalid replacements after calling
+       validate_replace_rtx_group and verify_changes.
+
 2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/41019
index 41b436b..7900841 100644 (file)
@@ -4312,10 +4312,15 @@ reload_as_needed (int live_known)
                              n = verify_changes (0);
 
                              /* We must also verify that the constraints
-                                are met after the replacement.  */
-                             extract_insn (p);
+                                are met after the replacement.  Make sure
+                                extract_insn is only called for an insn
+                                where the replacements were found to be
+                                valid so far. */
                              if (n)
-                               n = constrain_operands (1);
+                               {
+                                 extract_insn (p);
+                                 n = constrain_operands (1);
+                               }
 
                              /* If the constraints were not met, then
                                 undo the replacement, else confirm it.  */