[llvm-dev] OptBisect implementation for new pass manager

Zhizhou Yang via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 26 13:26:06 PDT 2018


On Wed, Sep 26, 2018 at 12:29 PM Fedor Sergeev via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

>
>
> On 09/26/2018 10:04 PM, David Greene wrote:
>  > But they're deeply connected.  I debug codegen problems all the time.
>  > That opt-bisect doesn't work with codegen is really unfortunate.
> Perhaps I'm missing some context here, but afaik current
> -opt-bisect-limit does work with codegen.
> And even if you turn on new pass manager and use -opt-bisect-limit you will
> still get bisect on codegen (which runs under legacy and thus has legacy
> OptBisect
> applied there).
>
One concern for me here is that in legacy optbisect, you will get a
continuous counting of passes from IR through codegen, like:
PASS (1): IR pass no.1
...
PASS (n): IR pass no.n
PASS (n+1): Codegen pass no.1
...
PASS (n+m): Codegen pass no.m

Now with this new design, we need the new opt-bisect from Pass
instrumentation (for new PM for IR) together with
-opt-bisect-limit (for legacy PM for codegen). And they do their own
counting separately. It may make bisecting become a little
bit complex.

We may want a wrapper above them so that user will not notice the
difference from the change.

I definitely hope there could be one new opt-bisect for new PM that can
cover both IR and codegen, but seems it will not
be easy since new PM doesn't deal with codegen.


>  > If opt-bisect should work with codegen then we need to think about how
>  > codegen will work with the new PM.
> Just as it works now - IR passes are run through new PM pipeline, while
> Codegen passes
> are run through legacy pipeline.
>
>  > I agree that whether or not the new PM becomes default is somewhat
>  > orthogonal but eventually it will and at that point I hope we have a
>  > functioning opt-bisect for codegen.
> I do expect opt-bisect to be functional for the whole compilation that
> involves
> new PM at a very first attempt of implementation being discussed here.
> Thats why I mentioned the need for "joint implementation" in my original
> mail.
>
> regards,
>    Fedor.
>
>
>  >
>  >                             -David
>  >
>  > Fedor Sergeev <fedor.sergeev at azul.com> writes:
>  >
>  >> I would really like to separate OptBisect and New-PM-by-default
>  >> discussions! :)
>  >>
>  >> regards,
>  >>   Fedor.
>  >>
>  >> On 09/26/2018 09:13 PM, David Greene wrote:
>  >>> I'm concerned about codegen.  If Codegen is not yet ready for the new
>  >>> PM, should the new PM really become default?  I would at least like to
>  >>> see a plan of how Codegen is going to migrate before the new PM
> becomes
>  >>> default.  Codegen pass pipelines have been wonky ever since I started
>  >>> working with LLVM and it would be nice to get that cleaned up.
>  >>>
>  >>>                              -David
>  >>>
>  >>> Philip Pfaffe <philip.pfaffe at gmail.com> writes:
>  >>>
>  >>>> Well, I think we don't have a clear idea about new-PM codegen should
>  >>>> work in general. Is this really something that concerns us right now?
>  >>>>
>  >>>> Philip
>  >>>>
>  >>>> On Wed, Sep 26, 2018 at 7:54 PM Friedman, Eli
>  >>>> <efriedma at codeaurora.org> wrote:
>  >>>>
>  >>>>      On 9/26/2018 10:47 AM, Philip Pfaffe via llvm-dev wrote:
>  >>>>      > Hi Fedor,
>  >>>>      >
>  >>>>      > can you make an example where a pass actually needs to
> opt-out?
>  >>>>      > Because IMO, bisect should quite literally to
> DebugCounter-style
>  >>>>      skip
>  >>>>      > every step in every ::run method's loop. Passes should not
> even
>  >>>>      be
>  >>>>      > concerned with this.
>  >>>>           This isn't so much an issue for the optimization
>  >>>> pipeline, but
>  >>>>      code
>  >>>>      generation involves some passes which are mandatory (e.g. isel).
>  >>>>           -Eli
>  >>>>           --
>  >>>>      Employee of Qualcomm Innovation Center, Inc.
>  >>>>      Qualcomm Innovation Center, Inc. is a member of Code Aurora
> Forum,
>  >>>>      a Linux Foundation Collaborative Project
>  >>>>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://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/20180926/b0f2df1e/attachment.html>


More information about the llvm-dev mailing list