<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>