llvm-profdata: Improve memory usage by tuning SmallDenseMap size
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 11 Jul 2017 01:18:28 +0000 (01:18 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 11 Jul 2017 01:18:28 +0000 (01:18 +0000)
commit5a22d3fd11475e853b3a2af93f79bce8f534d0ef
tree2981402416694be75b573dd6c6daf5d40e7128e9
parent098b147347d3607ae053cdac82b2b2f2b0065022
llvm-profdata: Improve memory usage by tuning SmallDenseMap size

This takes memory usage from 5.1GB to 970MB - it could go further by
using a small size of 2 instead of the default of 4, but given the
rather high cost of going over this limit by much, I figured a little
slosh would be worth the ~130MB of memory usage.

& this'll might not be such a big deal if we use a custom slab allocator
for the DenseMaps here anyway

While the vast majority (99.9%) of records use only 1 entry, the tuning
parameter to SmallDenseMap is the the number of buckets, not the number
of entries - so a small size of 1 wasn't useful, even for 1 element, it
would tip over into allocating (much, 64 slots worth) more space - none
of them ended up small.

llvm-svn: 307608
llvm/include/llvm/ProfileData/InstrProfWriter.h