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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits