[PATCH][AArch64] Prefer ldp x, x to ldr q

James Molloy james.molloy at arm.com
Thu Jul 24 09:23:17 PDT 2014


Hi Tim,

 

"LDR Qn" instructions are no more performant (on any microarchitecture I
know of) than "LDP Xm, Xn" or "LDP Dm, Dn". In fact, there are no
callee-saved Q registers so generating "LDR Qn" can cause serious
performance problems, as it is immediately spilled.

 

These are generated in two places - DAGCombine and SLP vectorize. Attached
are two simple patches to disable these transformations for AArch64
(actually if TLI->hasPairedLoad() which seems to have been made for this
purpose).

 

Are they OK?

 

Cheers,

 

James  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140724/5efab479/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qreg-dagcombine.diff
Type: application/octet-stream
Size: 1444 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140724/5efab479/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qreg-tti.diff
Type: application/octet-stream
Size: 1939 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140724/5efab479/attachment-0001.obj>


More information about the llvm-commits mailing list