<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Can you put this up on phabricator?  That will make review easier.<br>
    <br>
    You're proposing what appears to be an extension to the stackmap
    format.  You'll need to make sure your diff includes an update for
    the documentation as well.<br>
    <br>
    <div class="moz-cite-prefix">On 04/13/2015 09:17 AM, Marius Wachtler
      wrote:<br>
    </div>
    <blockquote
cite="mid:CANycJ-DGhdpPxcjDhqw9JjvqXJE6mLkxKKtJfxZPnKGkGSGwQg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Hi,</div>
        The attached patch implements support for embedding symbols in
        the array of large constants inside a stackmap/patchpoint.
        <div>We (=Pyston project) embed in the LLVM IR we generate a lot
          of pointers to external constants. I would like to cache the
          JITed functions and therefore I need to make the embedded
          constants relocatable -> change the IR to refer to module
          variables instead which I can replace when loading the cached
          object.</div>
      </div>
    </blockquote>
    Is there anything special about the fact these locations hold
    constants?  Or are you essentially just storing the location of a
    global variable as a relocatable symbol?  (Side note: What actually
    knows how to update the resulting symbol in the stackmap format?)<br>
    <blockquote
cite="mid:CANycJ-DGhdpPxcjDhqw9JjvqXJE6mLkxKKtJfxZPnKGkGSGwQg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Currently when a patchpoint has a constant variable as live
          argument it will materialize it in a register. Which we don't
          want because the live variables are rarely used (also the
          regalloc runs out of registers when having to many const
          variables as argument to the pp?!?...). <br>
        </div>
      </div>
    </blockquote>
    This sounds like a bug.  Could you try to isolate and file a test
    case?<br>
    <blockquote
cite="mid:CANycJ-DGhdpPxcjDhqw9JjvqXJE6mLkxKKtJfxZPnKGkGSGwQg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>This patch emits a symbol reference inside the array of
          large constants in the stackmap. The stack map format is
          untouched by this patch.</div>
        <div><br>
        </div>
        <div>
          <div>Together with <a moz-do-not-send="true"
href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150330/269160.html">http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150330/269160.html</a>
            this should make it possible to cache more JITed functions
            containing patchpoints.</div>
          <div><br>
          </div>
          <div>Looking forward to comments on this patch.</div>
          <div>Cheers,</div>
          <div>Marius</div>
          <div><br>
          </div>
          <div><br>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
llvm-commits mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>