[llvm] r213551 - R600/SI: Use scratch memory for large private arrays

Matt Arsenault arsenm2 at gmail.com
Fri Jul 25 10:07:06 PDT 2014


On Jul 21, 2014, at 8:45 AM, Tom Stellard <thomas.stellard at amd.com> wrote:

> -; SI-PROMOTE: V_MOVRELS_B32_e32
> +; SI-PROMOTE: BUFFER_STORE_SHORT v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], v{{[0-9]+}}, s{{[0-9]+}}
> +; SI-PROMOTE: BUFFER_STORE_SHORT v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], v{{[0-9]+}}, s{{[0-9]+}}
> +; SI_PROMOTE: BUFFER_LOAD_SSHORT v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}] + v{{[0-9]+}}, s{{[0-9]+}}
> define void @short_array(i32 addrspace(1)* %out, i32 %index) {
> entry:
>   %0 = alloca [2 x i16]
> @@ -139,8 +137,8 @@ entry:
> 
> ; R600: MOVA_INT

This adds the broken check line SI_PROMOTE

I’m also now more confused about what situations the register loads are used vs. LDS vs. scratch memory. This test seems like it’s storing to a scratch buffer, but loading from a register
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140725/3cc4f2fe/attachment.html>


More information about the llvm-commits mailing list