forked from OSchip/llvm-project
5ac2629823
Using OrderedInstructions::dominates as comparator for instructions in BBs without dominance relation can cause a non-deterministic order between such instructions. That in turn can cause us to materialize copies in a non-deterministic order. While this does not effect correctness, it causes some minor non-determinism in the final generated code, because values have slightly different labels. Without this patch, running -print-predicateinfo on a reasonably large module produces slightly different output on each run. This patch uses the dominator trees DFSInNum to order instruction from different BBs, which should enforce a deterministic ordering and guarantee that dominated instructions come after the instructions that dominate them. Reviewers: dberlin, efriedma, davide Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D48230 llvm-svn: 335150 |
||
---|---|---|
.. | ||
PredicateInfo | ||
PR37334-break-crit-edges-require-dt.ll | ||
clone-dicompileunit.ll | ||
combine-alias-scope-metadata.ll | ||
flattencfg.ll | ||
libcalls-fast-math-inf-loop.ll | ||
libcalls-opt-remarks.ll | ||
libcalls-shrinkwrap-double.ll | ||
libcalls-shrinkwrap-float.ll | ||
libcalls-shrinkwrap-long-double.ll | ||
lowerinvoke-funclet.ll | ||
lowerswitch.ll | ||
simplify-dbg-declare-load.ll | ||
split-bit-piece.ll | ||
store-first-op.ll | ||
strip-gc-relocates.ll | ||
strip-nonlinetable-debuginfo-containingtypes.ll | ||
strip-nonlinetable-debuginfo-cus.ll | ||
strip-nonlinetable-debuginfo-localvars.ll | ||
strip-nonlinetable-debuginfo-loops.ll | ||
strip-nonlinetable-debuginfo-subroutinetypes.ll |