diff options
author | Hal Finkel <hfinkel@anl.gov> | 2014-09-02 22:12:54 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2014-09-02 22:12:54 +0000 |
commit | 445dda5c4a56cb79fad548fcb4a55a8d43f0e315 (patch) | |
tree | 4c70711efb959e4c61565dd54c9cd55634197176 /llvm/lib | |
parent | 6ca513c913ce4e0e938947e37c50bc0969098119 (diff) | |
download | bcm5719-llvm-445dda5c4a56cb79fad548fcb4a55a8d43f0e315.tar.gz bcm5719-llvm-445dda5c4a56cb79fad548fcb4a55a8d43f0e315.zip |
Add pass-manager flags to use CFL AA
Add -use-cfl-aa (and -use-cfl-aa-in-codegen) to add CFL AA in the default pass
managers (for easy testing).
llvm-svn: 216978
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/Passes.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/Passes.cpp b/llvm/lib/CodeGen/Passes.cpp index 319c2c86503..53869b1544d 100644 --- a/llvm/lib/CodeGen/Passes.cpp +++ b/llvm/lib/CodeGen/Passes.cpp @@ -99,6 +99,10 @@ static cl::opt<bool> MISchedPostRA("misched-postra", cl::Hidden, static cl::opt<bool> EarlyLiveIntervals("early-live-intervals", cl::Hidden, cl::desc("Run live interval analysis earlier in the pipeline")); +static cl::opt<bool> UseCFLAA("use-cfl-aa-in-codegen", + cl::init(false), cl::Hidden, + cl::desc("Enable the new, experimental CFL alias analysis in CodeGen")); + /// Allow standard passes to be disabled by command line options. This supports /// simple binary flags that either suppress the pass or do nothing. /// i.e. -disable-mypass=false has no effect. @@ -376,6 +380,8 @@ void TargetPassConfig::addIRPasses() { // Add TypeBasedAliasAnalysis before BasicAliasAnalysis so that // BasicAliasAnalysis wins if they disagree. This is intended to help // support "obvious" type-punning idioms. + if (UseCFLAA) + addPass(createCFLAliasAnalysisPass()); addPass(createTypeBasedAliasAnalysisPass()); addPass(createScopedNoAliasAAPass()); addPass(createBasicAliasAnalysisPass()); diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index f5c5b065f11..69189f389b7 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -66,6 +66,9 @@ RunSLPAfterLoopVectorization("run-slp-after-loop-vectorization", cl::desc("Run the SLP vectorizer (and BB vectorizer) after the Loop " "vectorizer instead of before")); +static cl::opt<bool> UseCFLAA("use-cfl-aa", + cl::init(false), cl::Hidden, + cl::desc("Enable the new, experimental CFL alias analysis")); PassManagerBuilder::PassManagerBuilder() { OptLevel = 2; @@ -120,6 +123,8 @@ PassManagerBuilder::addInitialAliasAnalysisPasses(PassManagerBase &PM) const { // Add TypeBasedAliasAnalysis before BasicAliasAnalysis so that // BasicAliasAnalysis wins if they disagree. This is intended to help // support "obvious" type-punning idioms. + if (UseCFLAA) + PM.add(createCFLAliasAnalysisPass()); PM.add(createTypeBasedAliasAnalysisPass()); PM.add(createScopedNoAliasAAPass()); PM.add(createBasicAliasAnalysisPass()); |