[PATCH] D15543: Use Flat For 64-bit Global Buffer

Fang, Changpeng via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 22 12:15:38 PST 2015

Commited but was reverted because of a lIT failure on llvm.dbg.ll.

But this is the test I modified and my local test of this passed.

What could happen?



-----Original Message-----
From: Tom Stellard [mailto:tom at stellard.net] 
Sent: Tuesday, December 22, 2015 11:03 AM
To: Fang, Changpeng; tom at stellard.net
Cc: llvm-commits at lists.llvm.org; Arsenault, Matthew
Subject: Re: [PATCH] D15543: Use Flat For 64-bit Global Buffer

tstellarAMD accepted this revision.
tstellarAMD added a comment.
This revision is now accepted and ready to land.


I think it would be good to explain why we are making this change in the commit message.  Here is the commit message I wrote when I was getting ready to commit an earlier version of the change.  Feel free to use it:

  AMDGPU/SI: Use flat for global load/store when targeting HSA
  For some reason doing executing an MUBUF instruction with the addr64
  bit set and a zero base pointer in the resource descriptor causes
  the memory operation to be dropped when the shader is executed using
  the HSA runtime.
  This kind of MUBUF instruction is commonly used when the pointer is
  stored in VGPRs.  The base pointer field in the resource descriptor
  is set to zero and and the pointer is stored in the vaddr field.
  This patch resolves the issue by only using flat instructions for
  global memory operations when targeting HSA. This is an overly
  conservative fix as all other configurations of MUBUF instructions
  appear to work.

Comment at: lib/Target/AMDGPU/CIInstructions.td:36-37
@@ -35,2 +35,4 @@
Unnecessary whitepsace change, please drop this before you commit.


More information about the llvm-commits mailing list