[PATCH] Add support for symbolic large constant entries inside stackmaps

Marius Wachtler undingen at gmail.com
Mon Apr 20 13:08:00 PDT 2015

gentle ping

On Mon, Apr 13, 2015 at 6:17 PM, Marius Wachtler <undingen at gmail.com> wrote:

> Hi,
> The attached patch implements support for embedding symbols in the array
> of large constants inside a stackmap/patchpoint.
> 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.
> 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?!?...).
> This patch emits a symbol reference inside the array of large constants in
> the stackmap. The stack map format is untouched by this patch.
> Together with
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150330/269160.html
> this should make it possible to cache more JITed functions containing
> patchpoints.
> Looking forward to comments on this patch.
> Cheers,
> Marius
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150420/cb81b35a/attachment.html>

More information about the llvm-commits mailing list