diff options
| author | Andrew Trick <atrick@apple.com> | 2012-02-08 21:22:39 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2012-02-08 21:22:39 +0000 |
| commit | dd37d52f950d47d5e303b5922af0b3e8496f41e9 (patch) | |
| tree | fb3b93c7d055a0de4ed5d93ecd008a9b318e0d9b /llvm/lib/CodeGen | |
| parent | 3a61b7862b9dcc6cad51c0369f823b69cb29a987 (diff) | |
| download | bcm5719-llvm-dd37d52f950d47d5e303b5922af0b3e8496f41e9.tar.gz bcm5719-llvm-dd37d52f950d47d5e303b5922af0b3e8496f41e9.zip | |
Added TargetPassConfig::setOpt
llvm-svn: 150093
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/LLVMTargetMachine.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/Passes.cpp | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp index f07a85f39c2..d14fbb2c337 100644 --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -147,6 +147,8 @@ static MCContext *addPassesToGenerateCode(LLVMTargetMachine *TM, PassConfig->addMachinePasses(); + PassConfig->setInitialized(); + return Context; } diff --git a/llvm/lib/CodeGen/Passes.cpp b/llvm/lib/CodeGen/Passes.cpp index 2877cf165b6..6d12dd839c3 100644 --- a/llvm/lib/CodeGen/Passes.cpp +++ b/llvm/lib/CodeGen/Passes.cpp @@ -84,7 +84,10 @@ char TargetPassConfig::ID = 0; TargetPassConfig::~TargetPassConfig() {} TargetPassConfig::TargetPassConfig(TargetMachine *tm, PassManagerBase &pm) - : ImmutablePass(ID), TM(tm), PM(pm), DisableVerify(false) { + : ImmutablePass(ID), TM(tm), PM(pm), Initialized(false), + DisableVerify(false), + EnableTailMerge(true) { + // Register all target independent codegen passes to activate their PassIDs, // including this pass itself. initializeCodeGen(*PassRegistry::getPassRegistry()); @@ -103,6 +106,12 @@ TargetPassConfig::TargetPassConfig() llvm_unreachable("TargetPassConfig should not be constructed on-the-fly"); } +// Helper to verify the analysis is really immutable. +void TargetPassConfig::setOpt(bool &Opt, bool Val) { + assert(!Initialized && "PassConfig is immutable"); + Opt = Val; +} + void TargetPassConfig::addPass(char &ID) { // FIXME: check user overrides Pass *P = Pass::createPass(ID); |

