[PATCH] D83633: [NewPM][opt] Translate -foo-analysis to require<foo-analysis>
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Jul 11 16:41:37 PDT 2020
aeubanks created this revision.
aeubanks added reviewers: ychen, asbirlea, hans.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
Fixes 53 check-llvm tests under NPM.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D83633
Files:
llvm/include/llvm/Passes/PassBuilder.h
llvm/lib/Passes/PassBuilder.cpp
llvm/tools/opt/NewPMDriver.cpp
Index: llvm/tools/opt/NewPMDriver.cpp
===================================================================
--- llvm/tools/opt/NewPMDriver.cpp
+++ llvm/tools/opt/NewPMDriver.cpp
@@ -358,8 +358,11 @@
}
}
for (auto PassName : NonAAPasses) {
- if (auto Err =
- PB.parsePassPipeline(MPM, PassName, VerifyEachPass, DebugPM)) {
+ std::string ModifiedPassName(PassName.begin(), PassName.end());
+ if (PB.isAnalysisPassName(PassName))
+ ModifiedPassName = "require<" + ModifiedPassName + ">";
+ if (auto Err = PB.parsePassPipeline(MPM, ModifiedPassName, VerifyEachPass,
+ DebugPM)) {
errs() << Arg0 << ": " << toString(std::move(Err)) << "\n";
return false;
}
Index: llvm/lib/Passes/PassBuilder.cpp
===================================================================
--- llvm/lib/Passes/PassBuilder.cpp
+++ llvm/lib/Passes/PassBuilder.cpp
@@ -2665,3 +2665,20 @@
#include "PassRegistry.def"
return false;
}
+
+bool PassBuilder::isAnalysisPassName(StringRef PassName) {
+#define MODULE_ANALYSIS(NAME, CREATE_PASS) \
+ if (PassName == NAME) \
+ return true;
+#define FUNCTION_ANALYSIS(NAME, CREATE_PASS) \
+ if (PassName == NAME) \
+ return true;
+#define LOOP_ANALYSIS(NAME, CREATE_PASS) \
+ if (PassName == NAME) \
+ return true;
+#define CGSSC_ANALYSIS(NAME, CREATE_PASS) \
+ if (PassName == NAME) \
+ return true;
+#include "PassRegistry.def"
+ return false;
+}
Index: llvm/include/llvm/Passes/PassBuilder.h
===================================================================
--- llvm/include/llvm/Passes/PassBuilder.h
+++ llvm/include/llvm/Passes/PassBuilder.h
@@ -518,6 +518,9 @@
/// Returns true if the pass name is the name of an alias analysis pass.
bool isAAPassName(StringRef PassName);
+ /// Returns true if the pass name is the name of a (non-alias) analysis pass.
+ bool isAnalysisPassName(StringRef PassName);
+
/// Register a callback for a default optimizer pipeline extension
/// point
///
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83633.277266.patch
Type: text/x-patch
Size: 2398 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200711/4ad64645/attachment.bin>
More information about the llvm-commits
mailing list