diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2007-05-16 02:01:49 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2007-05-16 02:01:49 +0000 |
| commit | 9307292ae27c125a10eabccb5a437200d831a55f (patch) | |
| tree | 77aa9c26b47fcabd6db254fedecad7a5daf6937f /lib/Target/ARM/ARMTargetMachine.cpp | |
| parent | 4e654852f1bee3813dcc1d207710f041cdd22717 (diff) | |
| download | external_llvm-9307292ae27c125a10eabccb5a437200d831a55f.zip external_llvm-9307292ae27c125a10eabccb5a437200d831a55f.tar.gz external_llvm-9307292ae27c125a10eabccb5a437200d831a55f.tar.bz2 | |
Hooks for predication support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37093 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMTargetMachine.cpp')
| -rw-r--r-- | lib/Target/ARM/ARMTargetMachine.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 3815875..57b6440 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -17,6 +17,7 @@ #include "ARM.h" #include "llvm/Module.h" #include "llvm/PassManager.h" +#include "llvm/CodeGen/Passes.h" #include "llvm/Support/CommandLine.h" #include "llvm/Target/TargetMachineRegistry.h" #include "llvm/Target/TargetOptions.h" @@ -24,6 +25,8 @@ using namespace llvm; static cl::opt<bool> DisableLdStOpti("disable-arm-loadstore-opti", cl::Hidden, cl::desc("Disable load store optimization pass")); +static cl::opt<bool> EnableIfConversion("enable-arm-if-conversion", cl::Hidden, + cl::desc("Enable if-conversion pass")); namespace { // Register the target. @@ -85,6 +88,14 @@ bool ARMTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { return false; } +bool ARMTargetMachine::addPostRegAlloc(FunctionPassManager &PM, bool Fast) { + if (Fast || !EnableIfConversion || Subtarget.isThumb()) + return false; + + PM.add(createIfConverterPass()); + return true; +} + bool ARMTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { // FIXME: temporarily disabling load / store optimization pass for Thumb mode. if (!Fast && !DisableLdStOpti && !Subtarget.isThumb()) |
