[llvm-dev] RFC: Pass Execution Instrumentation interface

David A. Greene via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 13 10:53:49 PDT 2018


Philip Pfaffe <philip.pfaffe at gmail.com> writes:

>     The harder cases are where the analysis phase itself does some
>     transformation (possily to facilitate analysis) and then decides
>     the
>     larger-goal transformation is not viable. If the pass then tries
>     to
>     undo the first transformation, it's possible that -pass-max will
>     result
>     in code that never would have been generated, because it could do
>     the
>     first transformation but then not undo it because it hit the max
>     number
>     of transforms. Sometimes it's difficult to find where things are
>     undone
>     and update the transformation index (basically allow the undo and
>     decrement the index to reflect the undo).
> It should be pointed out that analyses don't transform the IR. At
> least not in the new PassManager, which I think we should focus on in
> this proposal.

I'm not talking about analysis passes as such.  I'm talking about
transformations passes that check various conditions before doing
transformations.  They have to check legality, profitability, etc.  Most
of the time this is well-separated but sometimes things can get pretty
convoluted and it's not always clear where the "logical changes" are, as
opposed to component changes that make up a single logical change.

                            -David


More information about the llvm-dev mailing list