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

Tom Stellard tom at stellard.net
Fri Aug 1 07:41:27 PDT 2014


On Fri, Jul 25, 2014 at 10:07:06AM -0700, Matt Arsenault wrote:
> 
> 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

This is a bug, it should be fixed in the attached patch.

-Tom

> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-R600-Move-code-for-generating-REGISTER_LOAD-into-R60.patch
Type: text/x-diff
Size: 5572 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140801/985a6bff/attachment.patch>


More information about the llvm-commits mailing list