aeubanks marked an inline comment as done.
aeubanks added inline comments.

================
Comment at: llvm/include/llvm/IR/PassInstrumentation.h:150
     for (auto &C : Callbacks->BeforePassCallbacks)
-      ShouldRun &= C(Pass.name(), llvm::Any(&IR));
+      ShouldRun &= C(Pass.name(), Pass.isRequired(), llvm::Any(&IR));
     return ShouldRun;
----------------
ychen wrote:
> Could we do this to not changing the callback API?
> `ShouldRun &= C(Pass.name(), llvm::Any(&IR)) || Pass.isRequired();`
Each pass instrumentation should decide whether or not to run the pass based on 
whether or not the pass is required or optional. An optional pass may still be 
run, (which should be the case for the vast majority of instances).

For example, the optnone would only care if a pass is required or not if it 
sees that a function is marked optnone.
Similarly, opt-bisect would only care if a pass is required if it's hit the 
bisect limit.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83519/new/

https://reviews.llvm.org/D83519



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to