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