From: Chandler Carruth Date: Thu, 27 Mar 2014 10:45:22 +0000 (+0000) Subject: [cleanup] Stop specifying size overrides for BumpPtrAllocators. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=31640971f1ecb192b1292e3310a500700093d576;p=clang [cleanup] Stop specifying size overrides for BumpPtrAllocators. 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 --- diff --git a/include/clang/Edit/EditedSource.h b/include/clang/Edit/EditedSource.h index 3ad5a6be14..f95b79785f 100644 --- a/include/clang/Edit/EditedSource.h +++ b/include/clang/Edit/EditedSource.h @@ -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; } diff --git a/tools/libclang/IndexingContext.h b/tools/libclang/IndexingContext.h index 91a22a98a6..88d623f42a 100644 --- a/tools/libclang/IndexingContext.h +++ b/tools/libclang/IndexingContext.h @@ -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; }