[llvm-dev] Adding custom callback function before/after passes
Fedor Sergeev via llvm-dev
llvm-dev at lists.llvm.org
Wed Dec 11 07:44:24 PST 2019
On 12/3/19 8:01 PM, Juneyoung Lee via llvm-dev wrote:
> Hello all,
>
> Is there a way to register callback that runs before/after passes?
> PassTimingInfo seems to do a similar thing by calling
> PassInstrumentationCallbacks::registerBeforePassCallback /
> registerAfterPassCallback, but it is hard-wired with
> StandardInstrumentations class.
PassInstrumentation framework was introduced to the new PassManager
specifically in mind with ability
to register arbitrary callbacks and execute them as pass manager
traverses through the pass pipeline.
PassInstrumentationCallbacks are indeed the entity to register your
callbacks into, before passing it to PassBuilder;
You can check how it is being done in
`llvm/tools/opt/NewPMDriver.cpp`llvm::runPassPipeline.
StandardInstrumentations are just a few "standard" callbacks that
provide "standard" functionality, like -print-after-all or -time-passes.
StandardInstrumentations registers its individual instrumentations the
same way you would register your own.
Note, that PassInstrumentation is only supported in new pass manager
(opt -passes= or clang -fexperimental-new-pass-manager).
regards,
Fedor.
> Do we have something similar to RegisterStandardPasses, so custom
> callbacks can be added from somewhere outside LLVM?
>
> Thanks,
> Juneyoung Lee
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191211/51f9675d/attachment.html>
More information about the llvm-dev
mailing list