Grow BumpPtrAllocator's slab size dynamically if we allocated many slabs. This
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 30 Sep 2010 16:18:28 +0000 (16:18 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 30 Sep 2010 16:18:28 +0000 (16:18 +0000)
commit82d96cccbc40f53c28dd8288b475e535ef017c3a
tree6bec1ea584046caa24277512c197b6ac61eb26cb
parent2f24c4ece09f1157c5cb29357d91d2a0d77eb57c
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
lib/Support/Allocator.cpp