diff options
author | Evan Cheng <evan.cheng@apple.com> | 2012-12-21 02:57:04 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2012-12-21 02:57:04 +0000 |
commit | ab37b2c4bb23ab80f92429b59d812ed491c14ea6 (patch) | |
tree | 6c11f2b2ae67b8f73beaa591a06397073eb6e87b | |
parent | a16422f11b030097182143581aaaa5451175b687 (diff) |
Add targets to skip running the GC passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170836 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/Passes.h | 5 | ||||
-rw-r--r-- | lib/CodeGen/Passes.cpp | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h index 282e4edcfb..7831d1211e 100644 --- a/include/llvm/CodeGen/Passes.h +++ b/include/llvm/CodeGen/Passes.h @@ -241,6 +241,11 @@ protected: return false; } + /// addGCPasses - Add late codegen passes that analyze code for garbage + /// collection. This should return true if GC info should be printed after + /// these passes. + virtual bool addGCPasses(); + /// Add standard basic block placement passes. virtual void addBlockPlacement(); diff --git a/lib/CodeGen/Passes.cpp b/lib/CodeGen/Passes.cpp index 96e2cf2d02..02ac836337 100644 --- a/lib/CodeGen/Passes.cpp +++ b/lib/CodeGen/Passes.cpp @@ -513,9 +513,10 @@ void TargetPassConfig::addMachinePasses() { } // GC - addPass(&GCMachineCodeAnalysisID); - if (PrintGCInfo) - addPass(createGCInfoPrinter(dbgs())); + if (addGCPasses()) { + if (PrintGCInfo) + addPass(createGCInfoPrinter(dbgs())); + } // Basic block placement. if (getOptLevel() != CodeGenOpt::None) @@ -732,6 +733,12 @@ void TargetPassConfig::addMachineLateOptimization() { printAndVerify("After copy propagation pass"); } +/// Add standard GC passes. +bool TargetPassConfig::addGCPasses() { + addPass(&GCMachineCodeAnalysisID); + return true; +} + /// Add standard basic block placement passes. void TargetPassConfig::addBlockPlacement() { AnalysisID PassID = 0; |