Patch: StackMap: Use IndirectMemRefOp more.

Gustaw Smolarczyk wielkiegie at gmail.com
Sun Sep 21 12:33:31 PDT 2014


Hello once again,

I managed to create a second version of my patch. This time, I don't
disallow FrameIndex from the IndirectMemRefOp optimization. Instead, I
track the number of unique SDValues with the reasoning that each of them
will require a register. In case the number of them grows too much, I fall
back to the old logic that handles registers spills gracefully (instead of
the register allocator error).

Regards,
Gustaw

2014-09-21 19:11 GMT+02:00 Gustaw Smolarczyk <wielkiegie at gmail.com>:

> Hello all.
>
> This is my first patch to the LLVM project. I hope you will find it useful.
>
> This patch improves the experimental stackmap and patchpoint intrinsics.
> It tries to use the IndirectMemRefOp in more cases. Currently, they are
> only emitted for values spilled to a local stack. However, they could be
> applied for any [Register + Offset] memory load.
>
> I had problems with indirect FrameIndex references. Because my code can't
> retrieve the offset of such a memory reference, it allocates a register for
> every such access, which caused one of the tests to fail. This is why I
> disabled it for this case.
>
> I am not very familiar with the LLVM code base. I might have done
> something in a roundabout or simply incorrect way. I would be glad if I had
> been given some pointers.
>
> Regards,
> Gustaw
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140921/89e6f5d9/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stackmap-use-indirect-more-v2.patch
Type: application/octet-stream
Size: 10499 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140921/89e6f5d9/attachment.obj>


More information about the llvm-commits mailing list