Grow BumpPtrAllocator's slab size dynamically if we allocated many slabs. This
reduces the amount of malloc calls and may reduce memory overhead.
Some numbers:
ASTContext stats, clang -cc1 -disable-free -fsyntax-only Cocoa_h.m
without dynamic growth | with dynamic growth
Number of memory regions: 3158 | Number of memory regions: 432
Bytes used:
12333185 | Bytes used:
12333185
Bytes allocated:
12935168 | Bytes allocated:
12800000
Bytes wasted: 601983 (includes alignment, etc) | Bytes wasted: 466815 (includes alignment, etc)
ASTContext stats, clang -cc1 -disable-free -fsyntax-only on clang's ASTReader.cpp
without dynamic growth | with dynamic growth
Number of memory regions: 10987 | Number of memory regions: 551
Bytes used:
42910356 | Bytes used:
42910356
Bytes allocated:
45002752 | Bytes allocated:
44711936
Bytes wasted:
2092396 (includes alignment, etc) | Bytes wasted:
1801580 (includes alignment, etc)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115151
91177308-0d34-0410-b5e6-
96231b3b80d8