From faa6e5c4103e211e52ea5fd0d7f4cf25ae9624b5 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Sat, 31 Oct 1998 12:44:19 -0700 Subject: [PATCH] toplev.c (rest_of_compilation): No longer set reload_completed. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit � * 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 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gcc/reload1.c b/gcc/reload1.c index 831436c1085..9c7a22ec5f3 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -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 -- 2.30.2