[ATOM] Memory form of call optimization

Murali, Sriram sriram.murali at intel.com
Mon Mar 25 12:17:59 PDT 2013


Hi, I am attaching the original patch, as well as an additional patch to address the generation of memory forms of call when there is a "folded reload" by the way register allocator handles unspill of the spilled registers to the stack. The second patch is bigger because of the lit tests added, while the actual modification to the llvm source is very small. The lit test is huge, because it is hard to create a scenario with spilling and unspilling of registers.

Please review.

Thanks
Sriram

From: Murali, Sriram
Sent: Tuesday, March 19, 2013 6:40 PM
To: llvm-commits at cs.uiuc.edu
Subject: [ATOM] Memory form of call optimization

Hi,

Memory form of call is micro-coded on Atom architecture. We can avoid this by loading the function pointer prior to the call. Memory form of call is identified in LLVM by the sequence of instructions chained to the call that obtains the function pointer. Memory forms of call are produced by a sequence of two loads in 32-bit mode or a single load in 64-bit mode preceding the call instruction . We would like to commit this work and add additional sequences later.

Please review.

Thanks,
Sriram

--
Sriram Murali
SSG/DPD/ECDL/DMP
+1 (519) 772 - 2579

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130325/65089896/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CALL_REG_INDIRECT.patch
Type: application/octet-stream
Size: 5606 bytes
Desc: CALL_REG_INDIRECT.patch
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130325/65089896/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CALL_REG_INDIRECT_FOLDED_RELOAD.patch
Type: application/octet-stream
Size: 23059 bytes
Desc: CALL_REG_INDIRECT_FOLDED_RELOAD.patch
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130325/65089896/attachment-0001.obj>


More information about the llvm-commits mailing list