]> gcc.gnu.org Git - gcc.git/commitdiff
toplev.c (rest_of_compilation): No longer set reload_completed.
authorJeff Law <law@gcc.gnu.org>
Sat, 31 Oct 1998 19:44:19 +0000 (12:44 -0700)
committerJeff Law <law@gcc.gnu.org>
Sat, 31 Oct 1998 19:44:19 +0000 (12:44 -0700)

        * toplev.c (rest_of_compilation): No longer set reload_completed.
        * reload1.c (reload): Set it here.  Perform instruction splitting
        after reload has completed if we will be running the scheduler
        again.

From-SVN: r23478

gcc/reload1.c

index 831436c10859f14521643dbd139f5c9e87cd436f..9c7a22ec5f3e403634c737731640a54778828a62 100644 (file)
@@ -1049,6 +1049,10 @@ reload (first, global, dumpfile)
        }
     }
 
+  /* We've finished reloading.  This reload_completed must be set before we
+     perform instruction splitting below.  */
+  reload_completed = 1;
+
   /* Make a pass over all the insns and delete all USEs which we inserted
      only to tag a REG_EQUAL note on them.  Remove all REG_DEAD and REG_UNUSED
      notes.  Delete all CLOBBER insns and simplify (subreg (reg)) operands.  */
@@ -1080,6 +1084,24 @@ reload (first, global, dumpfile)
 
        /* And simplify (subreg (reg)) if it appears as an operand.  */
        cleanup_subreg_operands (insn);
+
+       /* If optimizing and we are performing instruction scheduling after
+          reload, then go ahead and split insns now since we are about to
+          recompute flow information anyway.  */
+       if (optimize && flag_schedule_insns_after_reload)
+         {
+           rtx last, first;
+
+           last = try_split (PATTERN (insn), insn, 1);
+
+           if (last != insn)
+             {
+               PUT_CODE (insn, NOTE);
+               NOTE_SOURCE_FILE (insn) = 0;
+               NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
+             }
+         }
+          
       }
 
   /* If we are doing stack checking, give a warning if this function's
This page took 0.073926 seconds and 5 git commands to generate.