<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:anastasia.stulova@arm.com" title="Anastasia Stulova <anastasia.stulova@arm.com>"> <span class="fn">Anastasia Stulova</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Clang internal error during compilation of OpenCL C++ code"
   href="https://bugs.llvm.org/show_bug.cgi?id=40778">bug 40778</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Clang internal error during compilation of OpenCL C++ code"
   href="https://bugs.llvm.org/show_bug.cgi?id=40778#c23">Comment # 23</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Clang internal error during compilation of OpenCL C++ code"
   href="https://bugs.llvm.org/show_bug.cgi?id=40778">bug 40778</a>
              from <span class="vcard"><a class="email" href="mailto:anastasia.stulova@arm.com" title="Anastasia Stulova <anastasia.stulova@arm.com>"> <span class="fn">Anastasia Stulova</span></a>
</span></b>
        <pre>I believe the issues you are reporting now should be fixed after I commit this:
<a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [C++] Incorrect generation of initializers for __local addr space class variables in IR"
   href="show_bug.cgi?id=41157">https://bugs.llvm.org/show_bug.cgi?id=41157</a>

There is another issues with the application that I noticed where atomic
operation is performed on a local address space object by using the overload
with global address space. That doesn't guarantee to work correctly even though
some targets might support this. It does cause compilation for AMDGPU to fail
with another ICE.

This happens specifically in AliGPUTPCProcess_24AliGPUTPCStartHitsFinder0
kernel where a pointer to a member of smem (in a local address space) is passed
into a function CAMath::AtomicAddShared that casts it to global address space
object

::atomic_add( (volatile __global int*) addr, val );


I believe one way to work around this problem is to use templates to
instantiate a function call that uses atomic_add overload with local address
space pointer. But however it might be tricky to write. If you could use
overload with generic address space that libclc doesn't support unfortunately
(because it's doesn't have OpenCL 2.0 functionality), you can avoid the cast
completely.

So perhaps a better idea would be if you switch to a default Clang header that
supports OpenCL 2.0 capability. You would then however need to find OpenCL 2.0
compatible library to execute this code.

As for this bug I agree that it's better to close it now and any other issues
can be tracked by separate bugs. Thanks!</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>