[PATCH] D25891: [llvm] Convert iterable SmallPtrSet's to SmallSetVector's in Codegen

Mandeep Singh Grang via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 21 18:48:15 PDT 2016


mgrang created this revision.
mgrang added reviewers: t.p.northover, chandlerc, hfinkel.
mgrang added a subscriber: llvm-commits.
mgrang set the repository for this revision to rL LLVM.
Herald added subscribers: qcolombet, MatzeB.

Iteration of SmallPtrSet's are a cause of non-determinism in codegen because
the iteration order is not fixed. This results in different codegen from
run-to-run, release vs release+asserts and on linux vs windows.

      

The fix is to use SmallSetVector where the iteration order is deterministic.


Repository:
  rL LLVM

https://reviews.llvm.org/D25891

Files:
  include/llvm/CodeGen/LiveRangeEdit.h
  lib/CodeGen/CodeGenPrepare.cpp
  lib/CodeGen/InlineSpiller.cpp
  lib/CodeGen/MachineBlockPlacement.cpp
  lib/CodeGen/MachinePipeliner.cpp
  lib/CodeGen/MachineVerifier.cpp
  lib/CodeGen/OptimizePHIs.cpp
  lib/CodeGen/PHIElimination.cpp
  lib/CodeGen/PrologEpilogInserter.cpp
  lib/CodeGen/RegAllocBase.h
  lib/CodeGen/RegAllocGreedy.cpp
  lib/CodeGen/RegAllocPBQP.cpp
  lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  lib/CodeGen/SjLjEHPrepare.cpp
  lib/CodeGen/SplitKit.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25891.75519.patch
Type: text/x-patch
Size: 18141 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161022/822461d8/attachment.bin>


More information about the llvm-commits mailing list