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;
----------------
aeubanks wrote:
> 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.
Sorry, now I understand what you mean, the ands and ors confused me.

I don't want to rule out the possibility of some future pass instrumentation 
wanting to skip even a required pass. But I am open to discussion on this point.


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