]> granicus.if.org Git - clang/commitdiff
[cleanup] Stop specifying size overrides for BumpPtrAllocators.
authorChandler Carruth <chandlerc@gmail.com>
Thu, 27 Mar 2014 10:45:22 +0000 (10:45 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 27 Mar 2014 10:45:22 +0000 (10:45 +0000)
These don't seem to have any real point. Let's start with
IndexingContext. I can't come up with any conceivable reason to have
many hundereds of thousands of these alive in an address space which
would make the 4x difference in allocated (but unused) memory for the
string scratch buffer a significant memory usage problem.

The EditedSource one is somewhat more surprising. This is an 8x increase
in the memory allocated (but not used) per editted source file. However,
for this to realistically be a problem, you would need to have over half
a million editted source files in a single address space, and even that
would only really have problems on 32-bit Windows where you really only
have 2gb of virtual address space. And what's more important, the fix to
this if it is actually an issue shouldn't be to shrink the allocator's
size, it is to pass a single allocator into *many* edited source file
objects and let them share the memory.

These were the only two uses of custom sized BumpPtrAllocators
(excluding ones in the JIT using a custom allocation strategy) in all of
LLVM, Clang, LLD, LLDB, or Polly. I don't think we actually need this
complexity in the primary BumpPtrAllocator at all and am planning to
remove it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204910 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Edit/EditedSource.h
tools/libclang/IndexingContext.h

index 3ad5a6be1464eff3a8951290869530a581a6ea36..f95b79785fafe2d10e1e6c3f7c92cde84a884efa 100644 (file)
@@ -50,7 +50,7 @@ public:
                const bool FCommitInSystemHeader = true)
     : SourceMgr(SM), LangOpts(LangOpts), PPRec(PPRec),
       ForceCommitInSystemHeader(FCommitInSystemHeader),
-      StrAlloc(/*size=*/512) { }
+      StrAlloc() { }
 
   const SourceManager &getSourceManager() const { return SourceMgr; }
   const LangOptions &getLangOpts() const { return LangOpts; }
index 91a22a98a6fb9dcc915a0ac53b7d9386cead6a7c..88d623f42a5e33e4fe4b4ef1210bfb34f32755dd 100644 (file)
@@ -335,7 +335,7 @@ public:
                   unsigned indexOptions, CXTranslationUnit cxTU)
     : Ctx(0), ClientData(clientData), CB(indexCallbacks),
       IndexOptions(indexOptions), CXTU(cxTU),
-      StrScratch(/*size=*/1024), StrAdapterCount(0) { }
+      StrScratch(), StrAdapterCount(0) { }
 
   ASTContext &getASTContext() const { return *Ctx; }