Make block placement deterministic
authorRong Xu <xur@google.com>
Wed, 16 Nov 2016 20:50:06 +0000 (20:50 +0000)
committerRong Xu <xur@google.com>
Wed, 16 Nov 2016 20:50:06 +0000 (20:50 +0000)
commit66827427e1ef0e14399f24b6711e704ed96a3362
tree8f52f750b2e02bacb915fd17228ec992b30b968a
parent80baf69cb5177ff3c03a1cf9a817b4f72ebade10
Make block placement deterministic

We fail to produce bit-to-bit matching stage2 and stage3 compiler in PGO
bootstrap build. The reason is because LoopBlockSet is of SmallPtrSet type
whose iterating order depends on the pointer value.

This patch fixes this issue by changing to use SmallSetVector.

Differential Revision: http://reviews.llvm.org/D26634

llvm-svn: 287148
llvm/lib/CodeGen/MachineBlockPlacement.cpp