diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-09-30 08:53:01 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-09-30 08:53:01 +0000 |
commit | 792e1f6df9d70970b5f658d56344ded87f3d7b42 (patch) | |
tree | b7a81658d74876d835c186610f49f808b250a4e6 /lib/Target/ARM/ARMTargetMachine.cpp | |
parent | 629adde69953fa53362d20ddb7b4e67ed78b8ae3 (diff) |
Add a option which would move ld/st multiple pass before post-alloc scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83145 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMTargetMachine.cpp')
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index dcb64c5131..ef42bd20ca 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -22,6 +22,10 @@ #include "llvm/Target/TargetRegistry.h" using namespace llvm; +static cl::opt<bool> +LdStBeforeSched("ldstopti-before-sched2", cl::Hidden, + cl::desc("Move ld / st multiple pass before postalloc scheduling")); + static const MCAsmInfo *createMCAsmInfo(const Target &T, const StringRef &TT) { Triple TheTriple(TT); @@ -101,11 +105,22 @@ bool ARMBaseTargetMachine::addPreRegAlloc(PassManagerBase &PM, return true; } +bool ARMBaseTargetMachine::addPreSched2(PassManagerBase &PM, + CodeGenOpt::Level OptLevel) { + // FIXME: temporarily disabling load / store optimization pass for Thumb1. + if (OptLevel != CodeGenOpt::None && !Subtarget.isThumb1Only()) + if (LdStBeforeSched) + PM.add(createARMLoadStoreOptimizationPass()); + + return true; +} + bool ARMBaseTargetMachine::addPreEmitPass(PassManagerBase &PM, CodeGenOpt::Level OptLevel) { // FIXME: temporarily disabling load / store optimization pass for Thumb1. if (OptLevel != CodeGenOpt::None && !Subtarget.isThumb1Only()) { - PM.add(createARMLoadStoreOptimizationPass()); + if (!LdStBeforeSched) + PM.add(createARMLoadStoreOptimizationPass()); PM.add(createIfConverterPass()); } |