diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-23 04:42:39 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-04-23 04:42:39 +0000 |
commit | 1483fff271d01ee16c55c0a4c678aac9fde45951 (patch) | |
tree | a428659a633b9cfe3ba5221674056e3bedb3d198 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 004eb55feb1f0a44afe462b48061c9b1ab78eab0 (diff) | |
download | bcm5719-llvm-1483fff271d01ee16c55c0a4c678aac9fde45951.tar.gz bcm5719-llvm-1483fff271d01ee16c55c0a4c678aac9fde45951.zip |
BitcodeWriter: Emit distinct nodes before uniqued nodes
When an operand of a distinct node hasn't been read yet, the reader can
use a DistinctMDOperandPlaceholder. This is much cheaper than forward
referencing from a uniqued node. Change
ValueEnumerator::organizeMetadata to partition distinct nodes and
uniqued nodes to reduce the overhead of cycles broken by distinct nodes.
Mehdi measured this for me; this removes most of the RAUW from the
importing step of -flto=thin, even after a WIP patch that removes
string-based DITypeRefs (introducing many more cycles to the metadata
graph).
llvm-svn: 267276
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions