[LLVMdev] [AMDGPU][PATCH 3/3] Stubs implementation of the new intrinsics on Southern_Islands
Hilloulin Damien
damien.hilloulin at supelec.fr
Thu Aug 21 17:13:11 PDT 2014
This patch is a first implementation of the newly added
intrinsics for barriers/memory fences on SI. For ultra-simplicity, every
intrinsic is lowered to a barrier with no fence.
Signed-off-by: Damien Hilloulin <damien.hilloulin at supelec.fr>
---
lib/Target/R600/SIInstructions.td | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/lib/Target/R600/SIInstructions.td
b/lib/Target/R600/SIInstructions.td
index fd011a1..31f4e77 100644
--- a/lib/Target/R600/SIInstructions.td
+++ b/lib/Target/R600/SIInstructions.td
@@ -426,7 +426,21 @@ def S_CBRANCH_EXECNZ : SOPP <
let hasSideEffects = 1 in {
def S_BARRIER : SOPP <0x0000000a, (ins), "S_BARRIER",
- [(int_AMDGPU_barrier_local)]
+ [
+ (int_AMDGPU_barrier_nofence),//only correct pattern
+ (int_AMDGPU_barrier_local),//those patterns are stubs
+ (int_AMDGPU_barrier_global),
+ (int_AMDGPU_barrier_localglobal),
+ (int_AMDGPU_mem_fence_local),//those patterns are stubs
+ (int_AMDGPU_mem_fence_global),
+ (int_AMDGPU_mem_fence_localglobal),
+ (int_AMDGPU_read_mem_fence_local),//those patterns are stubs
+ (int_AMDGPU_read_mem_fence_global),
+ (int_AMDGPU_read_mem_fence_localglobal),
+ (int_AMDGPU_write_mem_fence_local),//those patterns are stubs
+ (int_AMDGPU_write_mem_fence_global),
+ (int_AMDGPU_write_mem_fence_localglobal)
+ ]
> {
let simm16 = 0;
let isBarrier = 1;
--
1.9.1
More information about the llvm-dev
mailing list