aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/ArrayRefTest.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2015-09-09 23:26:08 +0000
committerPhilip Reames <listmail@philipreames.com>2015-09-09 23:26:08 +0000
commit15d5563cea9de5dbdca0bded0bceb2b56797591c (patch)
tree1af4970307c9bc03d45b8693c28f4037ad9b1d7e /llvm/unittests/ADT/ArrayRefTest.cpp
parentf4a1b771574d63819e297204d09cc507a1ddd18f (diff)
downloadllvm-15d5563cea9de5dbdca0bded0bceb2b56797591c.zip
llvm-15d5563cea9de5dbdca0bded0bceb2b56797591c.tar.gz
llvm-15d5563cea9de5dbdca0bded0bceb2b56797591c.tar.bz2
[RewriteStatepointsForGC] Make base pointer inference deterministic
Previously, the base pointer algorithm wasn't deterministic. The core fixed point was (of course), but we were inserting new nodes and optimizing them in an order which was unspecified and variable. We'd somewhat hacked around this for testing by sorting by value name, but that doesn't solve the general determinism problem. Instead, we can use the order of traversal over the def/use graph to give us a single consistent ordering. Today, this is a DFS order, but the exact order doesn't mater provided it's deterministic for a given input. (Q: It is safe to rely on a deterministic order of operands right?) Note that this only fixes the determinism within a single inference step. The inference step is currently invoked many times in a non-deterministic order. That's a future change in the sequence. :) Differential Revision: http://reviews.llvm.org/D12640 llvm-svn: 247208
Diffstat (limited to 'llvm/unittests/ADT/ArrayRefTest.cpp')
0 files changed, 0 insertions, 0 deletions