Files
Florian Hahn 965f9d87ad [LoopUnroll] Use MapVector for deterministic iteration order. (#188821)
NonLoopBlocksIDom determines the order we adjust the DT, impacting DRT
child ordering.

Similarly, ExitInfos order impacts the order of SetDest, which applies
DT updates.

The order impacts collectChildrenInLoop, which in turn impacts the we
process BBs in LICM. And this in turn impacts the order in which we
perform alias queries.

If the order is not deterministic, we sometimes get different NumNoAlias
statistic counts for the same input, and possibly also different IR,
although I have not confirmed the latter.

Compile-time impact is neutral:
https://llvm-compile-time-tracker.com/compare.php?from=77710f14202a8684e12d68d08d2cd3738bbd0e1d&to=066ac6284041aac454c8ffa2894b866acbf96fd3&stat=instructions:u

On interesting change to highlight for stage1-O3, although this is
probably just noise : ClamAV 55233M 55190M (-0.08%)

PR: https://github.com/llvm/llvm-project/pull/188821
2026-03-27 13:02:51 +00:00

57 KiB