[llvm-dev] Status of the New Pass Manager
Fedor Sergeev via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 14 00:10:53 PDT 2019
Yes, this is a proper fix for the problem, apparently clang was not
setting up PassInstrumentation.
As soon as this patch is landed, -print-before/after-all should work
fully in clang.
And -time-passes will need a bit of polish (to avoid duplicated reports).
Thanks for bringing this issue up!
Fedor.
On 8/9/19 7:46 PM, Hiroshi Yamauchi wrote:
> Taewook contributes this patch https://reviews.llvm.org/D65975. It
> works for me. Thanks!
>
> *** IR Dump After ForceFunctionAttrsPass ***
> *** IR Dump After EntryExitInstrumenterPass ***
> *** IR Dump After AddDiscriminatorsPass ***
> .....
>
> On Wed, Aug 7, 2019 at 3:16 PM Hiroshi Yamauchi <yamauchi at google.com
> <mailto:yamauchi at google.com>> wrote:
>
>
>
> On Wed, Aug 7, 2019 at 8:33 AM Fedor Sergeev
> <fedor.sergeev at azul.com <mailto:fedor.sergeev at azul.com>> wrote:
>
>
>
> On 8/7/19 6:20 PM, Hiroshi Yamauchi wrote:
>> I basically run "clang
>> -fexperimental-new-pass-manager -print-after-all ..."
>
> It actually needs "-mllvm" in front of "-print-after-all".
>
>>
>> It's conceivable that something is different in our setup or
>> in clang (from opt)... I'll see if I can reproduce it outside
>> our setup.
> Does it depend on machine architecture?
> I generally use x86...
>
>
> I'm not sure, but this is on x86.
>
>
> regards,
> Fedor.
>>
>> Thanks.
>>
>>
>> On Tue, Aug 6, 2019 at 9:35 AM Fedor Sergeev
>> <fedor.sergeev at azul.com <mailto:fedor.sergeev at azul.com>> wrote:
>>
>>
>>
>> On 8/6/19 7:31 PM, Fedor Sergeev via llvm-dev wrote:
>>>
>>>
>>> On 8/6/19 3:02 AM, Hiroshi Yamauchi via llvm-dev wrote:
>>>> I had a chance to try -print-after-all with NPM.
>>>>
>>>> It seems like there's still no output for the passes
>>>> before objc-arc-contract (which is basically what I saw
>>>> before.) Does anyone else see this?
>>>>
>>>> Are we talking about the same thing?
>>> Apparently both yes and no.
>>> How do you run this?
>>>
>>> IR printing is implemented through pass instrumentation
>>> and is enabled in e.g. opt through the use of
>>> StandardInstrumentation
>>> in llvm::runPassPipeline.
>>> If you set up NewPM by yourself w/o the use
>>> llvm::runPassPipeline then most likely you just do not
>>> have StandardInstrumentation installed.
>> Reread your mail/output once more and honestly, I do not
>> understand what happens there.
>> Can you share exact setup where you get this?
>>
>> regards,
>> Fedor.
>>
>>>
>>> regards,
>>> Fedor.
>>>>
>>>> *** IR Dump After ObjC ARC contraction ***
>>>> *** IR Dump After Pre-ISel Intrinsic Lowering ***
>>>> *** IR Dump After Expand Atomic instructions ***
>>>> *** IR Dump After Canonicalize natural loops ***
>>>> *** IR Dump After Loop Strength Reduction ***
>>>> *** IR Dump After Merge contiguous icmps into a memcmp ***
>>>> *** IR Dump After Expand memcmp() to load/stores ***
>>>> *** IR Dump After Lower Garbage Collection Instructions ***
>>>> *** IR Dump After Shadow Stack GC Lowering ***
>>>> *** IR Dump After Remove unreachable blocks from the
>>>> CFG ***
>>>> *** IR Dump After Constant Hoisting ***
>>>> *** IR Dump After Partially inline calls to library
>>>> functions ***
>>>> *** IR Dump After Instrument function entry/exit with
>>>> calls to e.g. mcount() (post inlining) ***
>>>> *** IR Dump After Scalarize Masked Memory Intrinsics ***
>>>> *** IR Dump After Expand reduction intrinsics ***
>>>> *** IR Dump After Interleaved Access Pass ***
>>>> *** IR Dump After Expand indirectbr instructions ***
>>>> *** IR Dump After CodeGen Prepare ***
>>>> *** IR Dump After Rewrite Symbols ***
>>>> *** IR Dump After Exception handling preparation ***
>>>> *** IR Dump After Safe Stack instrumentation pass ***
>>>> .....
>>>> (dump from the machine passes)
>>>>
>>>>
>>>> On Sun, Jul 21, 2019 at 7:37 AM Fedor Sergeev
>>>> <fedor.v.sergeev at gmail.com
>>>> <mailto:fedor.v.sergeev at gmail.com>> wrote:
>>>>
>>>> FWIW, print-*-all should work under NPM just fine
>>>> and the only problem with print-* is (absent)
>>>> uniform pass name processing for cl::opt.
>>>> It is easy to introduce yet another option that
>>>> takes NPM pass names (and that's what we actually
>>>> did downstream).
>>>> Any suggestions on how to resolve this nuisance are
>>>> welcome.
>>>>
>>>> regards,
>>>> Fedor.
>>>>
>>>>
>>>> чт, 11 июл. 2019 г., 18:53 Hiroshi Yamauchi via
>>>> llvm-dev <llvm-dev at lists.llvm.org
>>>> <mailto:llvm-dev at lists.llvm.org>>:
>>>>
>>>> I don't exactly remember when I last tried it
>>>> and I didn't realize
>>>> there was r342896. I'll check it out. Thanks.
>>>>
>>>> On Wed, Jul 10, 2019 at 1:14 PM Philip Pfaffe
>>>> <philip.pfaffe at gmail.com
>>>> <mailto:philip.pfaffe at gmail.com>> wrote:
>>>> >
>>>> > Printing was implemented in r342896.
>>>> > @Hiroshi: Are there specific issues or
>>>> limitations you encountered with it?
>>>> >
>>>> > Cheers,
>>>> > Philip
>>>> >
>>>> > On Wed, Jul 10, 2019 at 8:48 PM Troy Johnson
>>>> via llvm-dev <llvm-dev at lists.llvm.org
>>>> <mailto:llvm-dev at lists.llvm.org>> wrote:
>>>> >>
>>>> >> -print-after-all is very useful for
>>>> debugging and learning about LLVM. I would
>>>> hope that would be implemented for the new PM
>>>> before removing the old PM. I'd personally
>>>> consider it a blocker.
>>>> >>
>>>> >> -Troy
>>>> >>
>>>> >> > -----Original Message-----
>>>> >> > From: llvm-dev
>>>> <llvm-dev-bounces at lists.llvm.org
>>>> <mailto:llvm-dev-bounces at lists.llvm.org>> On
>>>> Behalf Of Eric Christopher
>>>> >> > via llvm-dev
>>>> >> > Sent: Tuesday, July 09, 2019 7:40 PM
>>>> >> > To: Hiroshi Yamauchi <yamauchi at google.com
>>>> <mailto:yamauchi at google.com>>
>>>> >> > Cc: llvm-dev <llvm-dev at lists.llvm.org
>>>> <mailto:llvm-dev at lists.llvm.org>>; Yi Kong
>>>> <yikong at google.com <mailto:yikong at google.com>>
>>>> >> > Subject: Re: [llvm-dev] Status of the New
>>>> Pass Manager
>>>> >> >
>>>> >> > They don't, but this isn't considered a
>>>> blocker to removing the old one as far as I
>>>> >> > know.
>>>> >> >
>>>> >> > -eric
>>>> >> >
>>>> >> > On Tue, Jul 9, 2019 at 11:09 AM Hiroshi
>>>> Yamauchi via llvm-dev <llvm-
>>>> >> > dev at lists.llvm.org
>>>> <mailto:dev at lists.llvm.org>> wrote:
>>>> >> > >
>>>> >> > > FWIW, the flags like -print-after,
>>>> -printer-after-all don't work well
>>>> >> > > with the new pass manager last time I
>>>> checked.
>>>> >> > >
>>>> >> > > On Mon, Jul 8, 2019 at 12:20 PM Stephen
>>>> Hines via llvm-dev
>>>> >> > > <llvm-dev at lists.llvm.org
>>>> <mailto:llvm-dev at lists.llvm.org>> wrote:
>>>> >> > > >
>>>> >> > > > The Android platform build (AOSP) has
>>>> also switched to the new pass
>>>> >> > manager recently. We do have a few bugs
>>>> that we are chasing (hence opt-outs),
>>>> >> > but it is working quite well otherwise.
>>>> >> > > >
>>>> >> > > > Our current list of issues:
>>>> >> > > > 1) Libsqlite still has a mysterious
>>>> failure that we haven't been able to reduce
>>>> >> > well.
>>>> >> > > > 2)
>>>> https://bugs.llvm.org/show_bug.cgi?id=42124
>>>> shows that inlining costs
>>>> >> > are a bit different under NPM.
>>>> https://reviews.llvm.org/D63034 is one proposed
>>>> >> > patch for addressing this.
>>>> >> > > > 3) libpdfium exposed a non-determinism
>>>> issue with NPM where having the
>>>> >> > linux-libc-dev system package installed
>>>> changes execution. We are still looking
>>>> >> > at why this happens.
>>>> >> > > > 4) Sanitizer coverage information
>>>> isn't supported by the NPM yet
>>>> >> > (https://reviews.llvm.org/D62888).
>>>> >> > > >
>>>> >> > > > Thanks,
>>>> >> > > > Steve
>>>> >> > > >
>>>> >> > > > On Mon, Jul 1, 2019 at 11:07 AM Alex
>>>> Bradbury via llvm-dev <llvm-
>>>> >> > dev at lists.llvm.org
>>>> <mailto:dev at lists.llvm.org>> wrote:
>>>> >> > > >>
>>>> >> > > >> On Thu, 27 Jun 2019 at 17:46, Philip
>>>> Reames via llvm-dev
>>>> >> > > >> <llvm-dev at lists.llvm.org
>>>> <mailto:llvm-dev at lists.llvm.org>> wrote:
>>>> >> > > >> >
>>>> >> > > >> > For our downstream usage, we've
>>>> switched entirely to the new pass
>>>> >> > manager. We made the switch a couple of
>>>> months ago. All of our testing is
>>>> >> > being done with the NPM, and we're about
>>>> to start deleting (downstream) code
>>>> >> > which was only needed by the legacy pass
>>>> manager.
>>>> >> > > >> >
>>>> >> > > >> > I believe several other major
>>>> contributors are in the same state. We
>>>> >> > really need to get upstream switched over
>>>> so that all of the community's testing
>>>> >> > efforts are aligned again.
>>>> >> > > >>
>>>> >> > > >> I hadn't realised it was so close to
>>>> being ready. Do you see this
>>>> >> > > >> as a switch that could be made before
>>>> 9.0, or after it?
>>>> >> > > >>
>>>> >> > > >> Best,
>>>> >> > > >>
>>>> >> > > >> Alex
>>>> >> > > >>
>>>> _______________________________________________
>>>> >> > > >> 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
>>>> >> > > >
>>>> >> > > >
>>>> _______________________________________________
>>>> >> > > > 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
>>>> >> > >
>>>> _______________________________________________
>>>> >> > > 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
>>>> >> >
>>>> _______________________________________________
>>>> >> > 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
>>>> >> _______________________________________________
>>>> >> 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
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190814/f6038b90/attachment-0001.html>
More information about the llvm-dev
mailing list