[llvm-bugs] [Bug 32829] New: SmallPtrSet usage in SROA could introduce non-determinism in Clang
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Apr 27 11:10:12 PDT 2017
http://bugs.llvm.org/show_bug.cgi?id=32829
Bug ID: 32829
Summary: SmallPtrSet usage in SROA could introduce
non-determinism in Clang
Product: new-bugs
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: gkistanova at gmail.com
CC: llvm-bugs at lists.llvm.org
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.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170427/ec05b194/attachment.html>
More information about the llvm-bugs
mailing list