summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-12-01 01:22:38 +0000
committerAndrew Trick <atrick@apple.com>2012-12-01 01:22:38 +0000
commite7ea8aa48a266f22f2c07003313e49174c6d9037 (patch)
treecc0143fdaf852098e606567e575c195b7f27631f /llvm/lib/CodeGen/MachineScheduler.cpp
parentfe9d110f3a3cb7488cd74b7e2eb89b16d9ba22d3 (diff)
downloadbcm5719-llvm-e7ea8aa48a266f22f2c07003313e49174c6d9037.tar.gz
bcm5719-llvm-e7ea8aa48a266f22f2c07003313e49174c6d9037.zip
misched: fix RegionBegin when DebugValues get shuffled to the top.
assert (RemainingInstrs == 0 && "Instruction count mismatch!") rdar://12776937. llvm-svn: 169069
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index b3e38f64ff0..cc7aabda3c3 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -674,6 +674,8 @@ void ScheduleDAGMI::placeDebugValues() {
std::pair<MachineInstr *, MachineInstr *> P = *prior(DI);
MachineInstr *DbgValue = P.first;
MachineBasicBlock::iterator OrigPrevMI = P.second;
+ if (&*RegionBegin == DbgValue)
+ ++RegionBegin;
BB->splice(++OrigPrevMI, BB, DbgValue);
if (OrigPrevMI == llvm::prior(RegionEnd))
RegionEnd = DbgValue;
OpenPOWER on IntegriCloud