[clang] [llvm] [OptBisect][IR] Adding a new OptPassGate for disabling passes via name (PR #145059)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 10 06:17:51 PDT 2025


================
@@ -55,4 +72,29 @@ bool OptBisect::shouldRunPass(StringRef PassName,
   return ShouldRun;
 }
 
-OptPassGate &llvm::getGlobalPassGate() { return getOptBisector(); }
+static void printDisablePassMessage(const StringRef &Name, StringRef TargetDesc,
+                                    bool Running) {
+  StringRef Status = Running ? "" : "NOT ";
+  dbgs() << "OptDisable: " << Status << "running pass " << Name << " on "
+         << TargetDesc << "\n";
+}
+
+void OptDisable::setDisabled(StringRef Pass) {
+  DisabledPasses.insert(Pass.lower());
+}
+
+bool OptDisable::shouldRunPass(StringRef PassName,
+                               StringRef IRDescription) const {
+  assert(isEnabled());
+
+  const bool ShouldRun = !DisabledPasses.contains(PassName.lower());
----------------
nikic wrote:

```suggestion
  const bool ShouldRun = !DisabledPasses.contains(PassName);
```
Now that this is using pass names, I think it's best to be case sensitive (they are lowercase).

https://github.com/llvm/llvm-project/pull/145059


More information about the llvm-commits mailing list