forked from OSchip/llvm-project
Disable Mips' delay slot filler when optimization level is O0.
llvm-svn: 162589
This commit is contained in:
parent
722398f1d4
commit
4a08a4a8b6
|
@ -115,7 +115,9 @@ runOnMachineBasicBlock(MachineBasicBlock &MBB) {
|
|||
|
||||
InstrIter D;
|
||||
|
||||
if (!DisableDelaySlotFiller && findDelayInstr(MBB, I, D)) {
|
||||
// Delay slot filling is disabled at -O0.
|
||||
if (!DisableDelaySlotFiller && (TM.getOptLevel() != CodeGenOpt::None) &&
|
||||
findDelayInstr(MBB, I, D)) {
|
||||
MBB.splice(llvm::next(I), &MBB, D);
|
||||
++UsefulSlots;
|
||||
} else
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
; RUN: llc -march=mipsel < %s | FileCheck %s
|
||||
; RUN: llc -march=mipsel -O0 < %s | FileCheck %s -check-prefix=None
|
||||
; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefix=Default
|
||||
|
||||
define void @foo1() nounwind {
|
||||
entry:
|
||||
; CHECK: jalr
|
||||
; CHECK-NOT: nop
|
||||
; CHECK: jr
|
||||
; CHECK-NOT: nop
|
||||
; CHECK: .end
|
||||
; Default: jalr
|
||||
; Default-NOT: nop
|
||||
; Default: jr
|
||||
; Default-NOT: nop
|
||||
; Default: .end
|
||||
; None: jalr
|
||||
; None: nop
|
||||
; None: jr
|
||||
; None: nop
|
||||
; None: .end
|
||||
|
||||
tail call void @foo2(i32 3) nounwind
|
||||
ret void
|
||||
|
|
Loading…
Reference in New Issue