Avoid de-referencing pass beginning of a basic block. No small test case possible. rdar://9216009
llvm-svn: 128743
This commit is contained in:
parent
3d9df607ba
commit
88530e6568
|
@ -1650,7 +1650,9 @@ bool ARMConstantIslands::OptimizeThumb2Branches(MachineFunction &MF) {
|
|||
unsigned BrOffset = GetOffsetOf(Br.MI) + 4 - 2;
|
||||
unsigned DestOffset = BBOffsets[DestBB->getNumber()];
|
||||
if (BrOffset < DestOffset && (DestOffset - BrOffset) <= 126) {
|
||||
MachineBasicBlock::iterator CmpMI = Br.MI; --CmpMI;
|
||||
MachineBasicBlock::iterator CmpMI = Br.MI;
|
||||
if (CmpMI != Br.MI->getParent()->begin()) {
|
||||
--CmpMI;
|
||||
if (CmpMI->getOpcode() == ARM::tCMPi8) {
|
||||
unsigned Reg = CmpMI->getOperand(0).getReg();
|
||||
Pred = llvm::getInstrPredicate(CmpMI, PredReg);
|
||||
|
@ -1672,6 +1674,7 @@ bool ARMConstantIslands::OptimizeThumb2Branches(MachineFunction &MF) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return MadeChange;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue