[llvm-dev] RFC: Pass Execution Instrumentation interface

Fedor Sergeev via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 6 17:38:48 PDT 2018

Not sure how did I miss that, but this interface definitely lacks IRUnit.
Should be:

         bool BeforePass (PassID, IRUnit&, PassExecutionCounter);
         void AfterPass (PassID, IRUnit&, PassExecutionCounter);


On 06/07/2018 03:00 AM, Fedor Sergeev via llvm-dev wrote:
>   2. every single point of Pass execution in the (new) PassManager(s) 
> will query
>      this analysis and run instrumentation call specific to a 
> particular point.
>      Instrumentation points:
>         bool BeforePass (PassID, PassExecutionCounter);
>         void AfterPass (PassID, PassExecutionCounter);
>          Run before/after a particular pass execution
>              BeforePass instrumentation call returns true if this 
> execution is allowed to run.
>             'PassID'
>                  certain unique identifier for a pass (pass name?).
>             'PassExecutionCounter'
>                  a number that uniquely identifies this particular 
> pass execution
>                  in current pipeline, as tracked by Pass Manager.
>         void StartPipeline()
>         void EndPipeline()
>          Run at the start/end of a pass pipeline execution.
>          (useful for initialization/finalization purposes)

More information about the llvm-dev mailing list