]> granicus.if.org Git - clang/commit
Optimize PartialDiagnostic's memory-allocation behavior by placing a
authorDouglas Gregor <dgregor@apple.com>
Mon, 29 Mar 2010 23:34:08 +0000 (23:34 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 29 Mar 2010 23:34:08 +0000 (23:34 +0000)
commitfe6b2d481d91140923f4541f273b253291884214
tree5a1b459e04812ca5b5797a726a16c05dfe7298ca
parent74350825e370a37fb3baec78082078b28fc3c8b4
Optimize PartialDiagnostic's memory-allocation behavior by placing a
cache of PartialDiagnostic::Storage objects into an allocator within
the ASTContext. This eliminates a significant amount of malloc
traffic, for a 10% performance improvement in -fsyntax-only wall-clock
time with 403.gcc's combine.c.

Also, eliminate the RequireNonAbstractType hack I put in earlier,
which was but a symptom of this larger problem.

Fixes <rdar://problem/7806091>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99849 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/clang/AST/ASTContext.h
include/clang/Basic/PartialDiagnostic.h
lib/AST/DeclBase.cpp
lib/Basic/Diagnostic.cpp
lib/Sema/Sema.h
lib/Sema/SemaAccess.cpp
lib/Sema/SemaCXXCast.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaExceptionSpec.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaStmt.cpp
lib/Sema/SemaTemplate.cpp
lib/Sema/SemaType.cpp