diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2016-08-19 18:36:06 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2016-08-19 18:36:06 +0000 |
commit | 9b35e6d74618e108696199b6bb3821d941ab0ccc (patch) | |
tree | 5aae979c0efda484e38cbc2d26ccc9e638e5ac09 /llvm/lib/Passes/PassBuilder.cpp | |
parent | 26b76f2c599c0f5104319a5786093199b173f80d (diff) | |
download | llvm-9b35e6d74618e108696199b6bb3821d941ab0ccc.zip llvm-9b35e6d74618e108696199b6bb3821d941ab0ccc.tar.gz llvm-9b35e6d74618e108696199b6bb3821d941ab0ccc.tar.bz2 |
[PM] Re-instate r279227 and r279228 with a fix to the way the templating
was done to hopefully appease MSVC.
As an upside, this also implements the suggestion Sanjoy made in code
review, so two for one! =]
I'll be watching the bots to see if there are still issues.
llvm-svn: 279295
Diffstat (limited to 'llvm/lib/Passes/PassBuilder.cpp')
-rw-r--r-- | llvm/lib/Passes/PassBuilder.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index cdbc2a2..df47026 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -516,8 +516,9 @@ bool PassBuilder::parseModulePass(ModulePassManager &MPM, } #define MODULE_ANALYSIS(NAME, CREATE_PASS) \ if (Name == "require<" NAME ">") { \ - MPM.addPass(RequireAnalysisPass< \ - std::remove_reference<decltype(CREATE_PASS)>::type>()); \ + MPM.addPass( \ + RequireAnalysisPass< \ + std::remove_reference<decltype(CREATE_PASS)>::type, Module>()); \ return true; \ } \ if (Name == "invalidate<" NAME ">") { \ @@ -578,7 +579,8 @@ bool PassBuilder::parseCGSCCPass(CGSCCPassManager &CGPM, #define CGSCC_ANALYSIS(NAME, CREATE_PASS) \ if (Name == "require<" NAME ">") { \ CGPM.addPass(RequireAnalysisPass< \ - std::remove_reference<decltype(CREATE_PASS)>::type>()); \ + std::remove_reference<decltype(CREATE_PASS)>::type, \ + LazyCallGraph::SCC>()); \ return true; \ } \ if (Name == "invalidate<" NAME ">") { \ @@ -637,8 +639,9 @@ bool PassBuilder::parseFunctionPass(FunctionPassManager &FPM, } #define FUNCTION_ANALYSIS(NAME, CREATE_PASS) \ if (Name == "require<" NAME ">") { \ - FPM.addPass(RequireAnalysisPass< \ - std::remove_reference<decltype(CREATE_PASS)>::type>()); \ + FPM.addPass( \ + RequireAnalysisPass< \ + std::remove_reference<decltype(CREATE_PASS)>::type, Function>()); \ return true; \ } \ if (Name == "invalidate<" NAME ">") { \ @@ -688,7 +691,7 @@ bool PassBuilder::parseLoopPass(LoopPassManager &LPM, const PipelineElement &E, #define LOOP_ANALYSIS(NAME, CREATE_PASS) \ if (Name == "require<" NAME ">") { \ LPM.addPass(RequireAnalysisPass< \ - std::remove_reference<decltype(CREATE_PASS)>::type>()); \ + std::remove_reference<decltype(CREATE_PASS)>::type, Loop>()); \ return true; \ } \ if (Name == "invalidate<" NAME ">") { \ |