diff options
author | Dan Gohman <gohman@apple.com> | 2008-11-14 00:33:17 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-11-14 00:33:17 +0000 |
commit | f593de7686db23199053c9a4da1c2f0d33355ece (patch) | |
tree | 941734edb2eb06e99429b38bce2b29b34f01e95d | |
parent | 2bb4062209644d6beb7d66ed265bd4415de28bd8 (diff) | |
download | external_llvm-f593de7686db23199053c9a4da1c2f0d33355ece.zip external_llvm-f593de7686db23199053c9a4da1c2f0d33355ece.tar.gz external_llvm-f593de7686db23199053c9a4da1c2f0d33355ece.tar.bz2 |
For post-regalloc scheduling, remove the instructions from the block
before re-inserting them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59281 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/ScheduleDAGEmit.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/ScheduleDAGEmit.cpp b/lib/CodeGen/SelectionDAG/ScheduleDAGEmit.cpp index d60dd49..0c67973 100644 --- a/lib/CodeGen/SelectionDAG/ScheduleDAGEmit.cpp +++ b/lib/CodeGen/SelectionDAG/ScheduleDAGEmit.cpp @@ -675,6 +675,12 @@ void ScheduleDAG::EmitCrossRCCopy(SUnit *SU, /// EmitSchedule - Emit the machine code in scheduled order. MachineBasicBlock *ScheduleDAG::EmitSchedule() { + // For post-regalloc scheduling, we're rescheduling the instructions in the + // block, so start by removing them from the block. + if (!DAG) + while (!BB->empty()) + BB->remove(BB->begin()); + DenseMap<SDValue, unsigned> VRBaseMap; DenseMap<SUnit*, unsigned> CopyVRBaseMap; for (unsigned i = 0, e = Sequence.size(); i != e; i++) { |