[llvm-dev] Adding custom callback function before/after passes

Fedor Sergeev via llvm-dev llvm-dev at lists.llvm.org
Fri Dec 13 02:28:13 PST 2019



On 12/12/19 3:50 AM, Juneyoung Lee wrote:
> Hello Fedor.
>
> Thank you for the information.
> I made a simple patch that exposes PassInstrumentationCallback so 
> llvmGetPassPluginInfo can use it: https://reviews.llvm.org/D71086 . 
> Would this change make sense?
Sure, I  did reply in review.

regards,
   Fedor.
>
> Thanks,
> Juneyoung Lee
>
> On Thu, Dec 12, 2019 at 12:44 AM Fedor Sergeev <fedor.sergeev at azul.com 
> <mailto:fedor.sergeev at azul.com>> wrote:
>
>
>
>     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  <mailto:llvm-dev at lists.llvm.org>
>>     https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
> -- 
>
> Juneyoung Lee
> Software Foundation Lab, Seoul National University

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191213/6f6d690c/attachment.html>


More information about the llvm-dev mailing list