<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Type punning in polly ACC"
   href="https://bugs.llvm.org/show_bug.cgi?id=35010">35010</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Type punning in polly ACC
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Polly
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>polly-dev@googlegroups.com
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>philip.pfaffe@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In polly-acc, there is a dangerous case of type punning happening, which hasn't
blown up by pure chance.

GPUNodeBuilder is derived from IslNodeBuilder, and delegates generation of some
nodes back to its base. One of these cases is for handling `for` nodes. This
occurs whenever there's a loop within the kernel code. IslNodeBuilder will
decide whether this loops should be further parallelized through vectorization
or OMP, and to do so, it looks at the IslAstUserPayload attached to the nodes
annotation. This node, however, was generated by ppcg, which instead attaches
an `isl_ast_build` object to the node. The single reason why this doesn't blow
up is because IslNodeBuilder always looks at the `isInnermost` field first and
bails when that is true. By chance, this is always the case, because it's the
first field of the payload struct, and the first field of isl_ast_build is the
refcount.</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>