Hi I would like to query a runtime ordering of the passes but not using opt-bisect-limit=-1, as I do not need the ordering per function/module ( to avoid repetitions), only the schedule or order in which various passes are scheduled, I am experimenting with phase ordering and I need a runtime order in which the passes are scheduled. Is there any clang/opt option that would be usedful besides opt-bisect-limit?
There is -print-pipeline-passes
which prints the expanded pipeline as a string (and can be passed back to opt -passes
).
1 Like
Hi I got back to my project after a while, at the time I could get the string by now when I try to run it, It just exits silently without giving me the pass pipeline string.
This is not wired to be used with Clang driver I guess. This, and then adding a MPM.printPipeline helped me.
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp
index e8f2dc34588c..1e99fb226063 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -141,6 +141,9 @@ static cl::opt<bool> ClSanitizeOnOptimizerEarlyEP(
cl::desc("Insert sanitizers on OptimizerEarlyEP."), cl::init(false));
}
+namespace llvm {
+extern cl::opt<bool> PrintPipelinePasses;
+}
namespace {
// Default filename used for profile generation.