[llvm] r213551 - R600/SI: Use scratch memory for large private arrays
Matt Arsenault
arsenm2 at gmail.com
Fri Aug 1 09:57:31 PDT 2014
On Aug 1, 2014, at 7:41 AM, Tom Stellard <tom at stellard.net> wrote:
> 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
>
> <0001-R600-Move-code-for-generating-REGISTER_LOAD-into-R60.patch>
Would it be better to just add a check for SI around this for now? It should go back to using register loads sometimes eventually
More information about the llvm-commits
mailing list