BitcodeReader: Fix non-determinism in use-list order
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 5 Aug 2014 17:49:48 +0000 (17:49 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 5 Aug 2014 17:49:48 +0000 (17:49 +0000)
commit5a511b59c5571097e9cec617873168f55a8f2e0c
tree08755bde5a2c4060314b11d5580280dfa13d0ffa
parent00c9b6461f65380deed20676147083a6e8c66c3e
BitcodeReader: Fix non-determinism in use-list order

`BasicBlockFwdRefs` (and `BlockAddrFwdRefs` before it) was being emptied
in a non-deterministic order.  When predicting use-list order I've
worked around this another way, but even when parsing lazily (and we
can't recreate use-list order) use-lists should be deterministic.

Make them so by using a side-queue of functions with forward-referenced
blocks that gets visited in order.

llvm-svn: 214899
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/Bitcode/Reader/BitcodeReader.h