<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Hi Craig, I see you listed as the code
      owner for the x86 backend and I was wondering if you'd have time
      to comment on my review at <a class="moz-txt-link-freetext" href="https://reviews.llvm.org/D98591">https://reviews.llvm.org/D98591</a> ? This
      adds an extension mechanism to <span class="nl">TargetPassConfig
        to allow out-of-tree code to provide machine passes for an
        existing target.<br>
      </span></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Arthur has raised the question of
      whether it's appropriate to have such an extension mechanism so it
      might help if I explain my motivating example. I'm working on a
      way to do runtime inlining of functions referenced via pointers,
      including C++ virtual function calls. This works using
      ahead-of-time compiled code that has been annotated to derive
      call-tree information at runtime and potentially recompile parts
      of the code using bitcode embedded as data in the executable. To
      build the call tree I install a context pointer in a callee-saved
      register at the relevant call sites and retrieve it at function
      entry, both of which I do via a machine pass that runs just before
      the register allocator. There are actually several other
      complications but that's the starting point for wanting to inject
      a custom machine pass for an existing target. What do you think?</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">There are some more details on my
      github page <a class="moz-txt-link-freetext" href="https://github.com/drti/drti">https://github.com/drti/drti</a> if you're interested.<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Regards,</div>
    <div class="moz-cite-prefix">Raoul.<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 15/06/2021 23:22, Arthur Eubanks
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAPW48sptx5cz8awh+5L=XPFwMJnCSnjCAZtG2j5qrrjaPRHtOQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I'm not super familiar with the codegen pipeline,
        perhaps some backend people can take a look?
        <div><br>
        </div>
        <div>A question is, do we want extensions like in the middle-end
          optimization pipeline? I don't see why not, this mirrors the
          existing extensions for the optimization pipeline. But it'd be
          good to get some more opinions from people more knowledgeable.</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, Jun 14, 2021 at 8:04
          AM David Blaikie <<a href="mailto:dblaikie@gmail.com"
            moz-do-not-send="true">dblaikie@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="ltr">Arthur - any idea who might be good to review
            this?</div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Mon, Jun 7, 2021 at
              6:20 AM Raoul Gough via llvm-dev <<a
                href="mailto:llvm-dev@lists.llvm.org" target="_blank"
                moz-do-not-send="true">llvm-dev@lists.llvm.org</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">Hello llvm-dev, I have
              a code contribution for the legacy pass manager <br>
              and I'm having trouble finding anyone to finish reviewing
              it. I've made <br>
              some improvements based on earlier feedback from @ychen on
              Phabricator <br>
              but since then nobody has given final approval. Can anyone
              help with <br>
              this or point me in the right direction?<br>
              <br>
              I couldn't see anyone listed in the CODE_OWNERS.txt for
              this area of the <br>
              code base. From what I understand the new pass manager
              still doesn't <br>
              handle the target-specific code, so I think the code is in
              the right <br>
              place for now at least. I'd be happy to move it to the new
              pass manager <br>
              if that's currently possible, of course.<br>
              <br>
              This is related to my (out of tree) runtime inlining
              project and adds <br>
              minimal support for target-level extensions in a similar
              way to <br>
              addGlobalExtension in the legacy IR PassManagerBuilder...
              <br>
              <a href="https://reviews.llvm.org/D98591" rel="noreferrer"
                target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D98591</a><br>
              <br>
              Regards,<br>
              Raoul Gough.<br>
              <br>
              _______________________________________________<br>
              LLVM Developers mailing list<br>
              <a href="mailto:llvm-dev@lists.llvm.org" 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" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
            </blockquote>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>