<div dir="ltr"><div><div><div><div style="margin-left:40px">From 02c998f017107153c6dc78b8eb58192bfc338d80 Mon Sep 17 00:00:00 2001<br>From: Matt Arsenault <matthew.arsenault@Amd.com><br>Date: Wed, 13 Jul 2016 21:07:53 -0700<br>Subject: [PATCH] R600: Use new barrier intrinsic<br><br>---<br> r600/lib/synchronization/barrier_impl.ll | 7 +++----<br> 1 file changed, 3 insertions(+), 4 deletions(-)<br><br>diff --git a/r600/lib/synchronization/barrier_impl.ll b/r600/lib/synchronization/barrier_impl.ll<br>index 825b2eb..9b8fefb 100644<br>--- a/r600/lib/synchronization/barrier_impl.ll<br>+++ b/r600/lib/synchronization/barrier_impl.ll<br>@@ -1,7 +1,6 @@<br> declare i32 @__clc_clk_local_mem_fence() #1<br> declare i32 @__clc_clk_global_mem_fence() #1<br>-declare void @llvm.AMDGPU.barrier.local() #0<br>-declare void @llvm.AMDGPU.barrier.global() #0<br>+declare void @llvm.r600.group.barrier() #0<br> <br> define void @barrier(i32 %flags) #2 {<br> barrier_local_test:<br>@@ -11,7 +10,7 @@ barrier_local_test:<br>   br i1 %1, label %barrier_local, label %barrier_global_test<br> <br> barrier_local:<br>-  call void @llvm.AMDGPU.barrier.local()<br>+  call void @llvm.r600.group.barrier()<br><br></div>Please pardon my ignorance, but does the new intrinsic handle synchronizing writes/reads to local/global memory along with thread synchronization?<br><br></div>If that is the case, could we modify the barrier_local portion to jump straight to done, so that we don't end up inserting two barriers if someone calls<br></div>barrier(CLK_GLOBAL_MEM_FENCE | CLK_LOCAL_MEM_FENCE);<br><br></div><div>I don't have my NI card installed at the moment, but could if necessary to test things out.<br></div><div><br></div>--Aaron<br><div><div><div><div><div><div><div style="margin-left:40px"><br>   br label %barrier_global_test<br> <br> barrier_global_test:<br>@@ -21,7 +20,7 @@ barrier_global_test:<br>   br i1 %3, label %barrier_global, label %done<br> <br> barrier_global:<br>-  call void @llvm.AMDGPU.barrier.global()<br>+  call void @llvm.r600.group.barrier()<br>   br label %done<br> <br> done:<br>-- <br>2.7.4 (Apple Git-66)<br><br><br></div><br><div class="gmail_extra"><br><div class="gmail_quote">2016-07-13 23:08 GMT-05:00 Matt Arsenault via Libclc-dev <span dir="ltr"><<a href="mailto:libclc-dev@lists.llvm.org" target="_blank">libclc-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">_______________________________________________<br>
Libclc-dev mailing list<br>
<a href="mailto:Libclc-dev@lists.llvm.org">Libclc-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev</a><br>
</blockquote></div><br></div></div></div></div></div></div></div></div>