[PATCH] D26634: Make block placement determinisatic

Michael Kuperstein via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 14 14:22:08 PST 2016


mkuper added inline comments.


================
Comment at: lib/CodeGen/MachineBlockPlacement.cpp:1498
+   // matching clang binary in bootstrap build.
+   for (MachineBasicBlock &LoopBB : *F)
+     if (LoopBlockSet.count(&LoopBB))
----------------
davidxl wrote:
> This fix has compile time implication. Two alternatives:
> 1) make collectLoopBlockSet to also compute a vector of blocks in fixed order
> or
> 2) change BlockFilterSet to be a set of integers where the integer is MBB's unique id: getNumber()
Another alternative is to change BlockFilterSet to be a SetVector instead of a SmallPtrSet.
("The drawback of SetVector is that it requires twice as much space as a normal set and has the sum of constant factors from the set-like container and the sequential container that it uses. Use it only if you need to iterate over the elements in a deterministic order")

Or is it also too expensive in this case?


https://reviews.llvm.org/D26634





More information about the llvm-commits mailing list