<html>
    <head>
      <base href="http://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 - SmallPtrSet usage in SROA could introduce non-determinism in Clang"
   href="http://bugs.llvm.org/show_bug.cgi?id=32829">32829</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>SmallPtrSet usage in SROA could introduce non-determinism in Clang
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>gkistanova@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>SROA uses a SmallPtrSet for holding speculated SelectInst items.

In lib/Transforms/Scalar/SROA.cpp

SmallPtrSet<SelectInst *, 8> SelectUsers;

The result depends on a particular order in which the items get iterated from
that set.

This works fine while that SmallPtrSet object remains small. However, if  it
grows, the addresses get changed, and the iteration order gets 
nondeterministic.

The issue could be exposed, for example, by nondeterministic
".sroa.speculated<changing-number>" names in IR.

The same might apply to SmallPtrSet<PHINode *, 8> PHIUsers; as well.</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>