diff options
Diffstat (limited to 'lib/Target/ARM/ARMTargetMachine.cpp')
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 2101da8804..06c893a6d8 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -131,8 +131,10 @@ bool ARMBaseTargetMachine::addPreSched2(PassManagerBase &PM, PM.add(createARMExpandPseudoPass()); if (EarlyIfConvert && OptLevel != CodeGenOpt::None) { - if (!Subtarget.isThumb1Only()) + if (!Subtarget.isThumb1Only()) PM.add(createIfConverterPass()); + if (Subtarget.isThumb2()) + PM.add(createThumb2ITBlockPass()); } return true; @@ -146,7 +148,8 @@ bool ARMBaseTargetMachine::addPreEmitPass(PassManagerBase &PM, } if (Subtarget.isThumb2()) { - PM.add(createThumb2ITBlockPass()); + if (!EarlyIfConvert) + PM.add(createThumb2ITBlockPass()); PM.add(createThumb2SizeReductionPass()); } |