Skip to content

Commit 35c9e51

Browse files
committed
PostRA scheduler fix. Clear stale loop dependencies.
Fixes <rdar://problem/10235725> llvm-svn: 141357
1 parent 4ef1583 commit 35c9e51

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

llvm/lib/CodeGen/ScheduleDAGInstrs.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ static const Value *getUnderlyingObjectForInstr(const MachineInstr *MI,
134134
}
135135

136136
void ScheduleDAGInstrs::StartBlock(MachineBasicBlock *BB) {
137+
LoopRegs.Deps.clear();
137138
if (MachineLoop *ML = MLI.getLoopFor(BB))
138139
if (BB == ML->getLoopLatch()) {
139140
MachineBasicBlock *Header = ML->getHeader();

llvm/lib/CodeGen/ScheduleDAGInstrs.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ namespace llvm {
4848
/// VisitLoop - Clear out any previous state and analyze the given loop.
4949
///
5050
void VisitLoop(const MachineLoop *Loop) {
51-
Deps.clear();
51+
assert(Deps.empty() && "stale loop dependencies");
52+
5253
MachineBasicBlock *Header = Loop->getHeader();
5354
SmallSet<unsigned, 8> LoopLiveIns;
5455
for (MachineBasicBlock::livein_iterator LI = Header->livein_begin(),

0 commit comments

Comments
 (0)