summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2017-12-23 19:38:03 +0000
committerSam McCall <sam.mccall@gmail.com>2017-12-23 19:38:03 +0000
commit4b9bbb378b044f3bafa7a3281842bd5d288f529d (patch)
tree5caf0425f86d3ec45e4cc4aa1c24e5eb55ed6838 /llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
parente83ae11ccc928ae29c1987655459d17bca000f26 (diff)
downloadbcm5719-llvm-4b9bbb378b044f3bafa7a3281842bd5d288f529d.tar.gz
bcm5719-llvm-4b9bbb378b044f3bafa7a3281842bd5d288f529d.zip
[clangd] Use Builder for symbol slabs, and use sorted-vector for storage
Summary: This improves a few things: - the insert -> freeze -> read sequence is now enforced/communicated by the type system - SymbolSlab::const_iterator iterates over symbols, not over id-symbol pairs - we avoid permanently storing a second copy of the IDs, and the string map's hashtable The slab size is now down to 21.8MB for the LLVM project. Of this only 2.7MB is strings, the rest is #symbols * `sizeof(Symbol)`. `sizeof(Symbol)` is currently 96, which seems too big - I think SymbolInfo isn't efficiently packed. That's a topic for another patch! Also added simple API to see the memory usage/#symbols of a slab, since it seems likely we will continue to care about this. Reviewers: ilya-biryukov Subscribers: klimek, mgrang, cfe-commits Differential Revision: https://reviews.llvm.org/D41506 llvm-svn: 321412
Diffstat (limited to 'llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud