diff options
author | Chris Lattner <sabre@nondot.org> | 2004-03-31 21:59:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-03-31 21:59:59 +0000 |
commit | b4186e0ccd8dd8630078147e022142a8b65c9383 (patch) | |
tree | 693c16b186710449a3285d900b7afd08ac4fc28f | |
parent | 4f6410f5cb1c9ad8cbe4f5a96dd706023ff4dbc5 (diff) | |
download | external_llvm-b4186e0ccd8dd8630078147e022142a8b65c9383.tar.gz external_llvm-b4186e0ccd8dd8630078147e022142a8b65c9383.tar.bz2 external_llvm-b4186e0ccd8dd8630078147e022142a8b65c9383.zip |
MBB::remove should not modify the iterator passed in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12572 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/InstrSched/InstrScheduling.cpp | 3 | ||||
-rw-r--r-- | lib/Target/SparcV9/InstrSched/InstrScheduling.cpp | 3 | ||||
-rw-r--r-- | lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/lib/CodeGen/InstrSched/InstrScheduling.cpp b/lib/CodeGen/InstrSched/InstrScheduling.cpp index 5395a8197c..6306269191 100644 --- a/lib/CodeGen/InstrSched/InstrScheduling.cpp +++ b/lib/CodeGen/InstrSched/InstrScheduling.cpp @@ -648,7 +648,8 @@ RecordSchedule(MachineBasicBlock &MBB, const SchedulingManager& S) // Remove all except the dummy PHI instructions from MBB, and // pre-allocate create space for the ones we will put back in. - while (I != MBB.end()) MBB.remove(I); + while (I != MBB.end()) + MBB.remove(I++); InstrSchedule::const_iterator NIend = S.isched.end(); for (InstrSchedule::const_iterator NI = S.isched.begin(); NI != NIend; ++NI) diff --git a/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp b/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp index 5395a8197c..6306269191 100644 --- a/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp +++ b/lib/Target/SparcV9/InstrSched/InstrScheduling.cpp @@ -648,7 +648,8 @@ RecordSchedule(MachineBasicBlock &MBB, const SchedulingManager& S) // Remove all except the dummy PHI instructions from MBB, and // pre-allocate create space for the ones we will put back in. - while (I != MBB.end()) MBB.remove(I); + while (I != MBB.end()) + MBB.remove(I++); InstrSchedule::const_iterator NIend = S.isched.end(); for (InstrSchedule::const_iterator NI = S.isched.begin(); NI != NIend; ++NI) diff --git a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp index 51a6f8b89e..28fc75a8f6 100644 --- a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp +++ b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp @@ -542,7 +542,7 @@ void PhyRegAlloc::updateMachineCode() } // move instruction before branch - MBB.insert(MII, MBB.remove(DelaySlotMI)); + MBB.insert(MII, MBB.remove(DelaySlotMI++)); // On cond1 we are done (we already moved the // instruction out of the delay slot). On cond2 we need |