<div dir="ltr">Hi,<div><br></div><div>Recently I am using clang and libclc to compile OpenCL source code to PTX. For every "barrier(CL_LOCAL_MEM_FENCE)" I wrote in OpenCL source, I got a function entry call instead of ".bar sync 0" as expected (shown as follows):</div>


<div><br></div><div><div>.func barrier</div><div>(</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>.reg .b32 barrier_param_0</div><div>)</div><div>;</div></div><div><br></div><div><div>// Callseq Start 0</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>.reg .b32 temp_param_reg;</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>// <end>}</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>.reg .b32 param0;</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>mov.b32<span class="Apple-tab-span" style="white-space:pre">     </span>param0, %r4;</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>call.uni </div><div><span class="Apple-tab-span" style="white-space:pre">    </span>barrier, </div><div><span class="Apple-tab-span" style="white-space:pre">    </span>(</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>param0</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>);</div><div><span class="Apple-tab-span" style="white-space:pre">   </span></div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>//{</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>}// Callseq End 0</div></div><div><br></div><div><br></div><div>I believe this is caused by incorrect implementation of barrier function in libclc. But then I found there is an implementation of barrier in "libclc/ptx-nvidiacl/lib/synchronizatoin/<a href="http://barrier.cl" target="_blank">barrier.cl</a>". However, this file is not included in "libclc/ptx-nvidiacl/lib/SOURCE". After I add a new line "synchronization/<a href="http://barrier.cl">barrier.cl</a>" to the SOURCE file, everything works just fine. Could you please take a look and make necessary changes? Thank you!<br clear="all">


<div dir="ltr"><div><br></div>Best,<div><br><div>Jin Wang</div><div><br></div></div></div><br>
</div></div>