R600 optimizations

Vincent Lejeune vljn at ovi.com
Fri May 31 14:59:59 PDT 2013


Hi,

these patches improve code generation for R600 backend.
The first one allows dot4 instruction (which is a pseudo instruction representing 4 dot4_eg/r600 instructions) to be folded with neg/abs/const instructions.
Lot of shaders use dot4 on const provided value (for clipping for instance) and should benefit from such optimization by reducing number of COPY.
The second and third ones uses abilities of texture/export instructions to swizzle their instruction to avoid COPY by removing duplication.
I'm working on adding lit test case, the ones I'm using to test my implementation is generated by Lightmark and I doubt I can provide it.


Vincent
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-R600-Const-Neg-Abs-can-be-folded-to-dot4.patch
Type: application/octet-stream
Size: 14182 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130531/059134fe/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-R600-Add-a-pass-that-merge-Vector-Register.patch
Type: application/octet-stream
Size: 14251 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130531/059134fe/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-R600-Swizzle-texture-export-instructions.patch
Type: application/octet-stream
Size: 8345 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130531/059134fe/attachment-0002.obj>


More information about the llvm-commits mailing list