Go to file
David Blaikie d16a61d2c8 llvm-profdata: Indirect infrequently used fields to reduce memory usage
Examining a large profile example, it seems relatively few records have
non-empty IndirectCall and MemOP data, so indirecting these through a
unique_ptr (non-null only when they are non-empty) Reduces memory usage
on this particular example from 14GB to 10GB according to valgrind's
massif.

I suspect it'd still be worth moving InstrProfWriter to its own data
structure that had Counts and the indirected IndirectCall+MemOP, and did
not include the Name, Hash, or Error fields. This would reduce the size
of this dominant data structure by half of this new, lower amount.
(Name(2), Hash(1), Error(1) ~= Counts(vector, 3), ValueProfData
(unique_ptr, 1))
-> From code review feedback, might actually refactor InstrProfRecord
itself to have a sub-struct with all the counts, and use that from
InstrProfWriter, rather than InstrProfWriter owning its own data
structure for this.

Reviewers: davidxl

Differential Revision: https://reviews.llvm.org/D34694

llvm-svn: 306631
2017-06-29 02:51:58 +00:00
clang Track the set of module maps read while building a .pcm file and reload those when preprocessing from that .pcm file. 2017-06-29 02:19:42 +00:00
clang-tools-extra clangDaemon requires clangLex. 2017-06-28 22:57:15 +00:00
compiler-rt Revert "[asan] Control location of symbolizer on device using ANDROID_SYMBOLIZER_PATH" 2017-06-29 02:48:06 +00:00
debuginfo-tests Add a test for PR33166. 2017-05-25 19:33:16 +00:00
libclc generic: add missing get_work_dim include 2017-06-02 15:58:35 +00:00
libcxx Updated notest on 2974 2017-06-28 18:19:34 +00:00
libcxxabi Add some catch(...) blocks to the tests so that if they fail, we get a good error message. No functional change. 2017-06-22 00:49:03 +00:00
libunwind [libunwind] Add _LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS 2017-06-27 18:37:06 +00:00
lld Revert "Replace trivial use of external rc.exe by writing our own .res file." 2017-06-29 00:17:26 +00:00
lldb Added a project for the unified IR interpreter. 2017-06-28 22:51:16 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm llvm-profdata: Indirect infrequently used fields to reduce memory usage 2017-06-29 02:51:58 +00:00
openmp Make test/parallel/omp_nested.c not use so many threads 2017-06-27 03:04:25 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly Heap allocation for new arrays. 2017-06-28 13:02:43 +00:00