Go to file
Benjamin Kramer b009517ad4 Pool allocate ImplicitConversionSequences.
To avoid malloc thrashing give OverloadCandidateSet an inline capacity for conversion sequences.
We use the fact that OverloadCandidates never outlive the OverloadCandidateSet and have a fixed
amount of conversion sequences.

This eliminates the oversized SmallVector from OverloadCandidate shrinking it from 752 to 208 bytes.

On the test case from the "Why is CLANG++ so freaking slow" thread on llvmdev this avoids one gig
of vector reallocation (including memcpy) which translates into 5-10% speedup on Lion/x86_64.

Overload candidate computation is still the biggest malloc contributor when compiling templated
c++ code.

llvm-svn: 148186
2012-01-14 16:32:05 +00:00
clang Pool allocate ImplicitConversionSequences. 2012-01-14 16:32:05 +00:00
compiler-rt This patch adds two methods, __asan_allocate_island and __asan_deallocate_island 2012-01-13 16:13:58 +00:00
debuginfo-tests Testcase for r133065 2011-06-15 17:57:23 +00:00
libclc Update repository paths. 2012-01-08 22:31:18 +00:00
libcxx Fix http://llvm.org/bugs/show_bug.cgi?id=11752 2012-01-12 23:37:51 +00:00
libcxxabi Two bug fixes, several clarifications, and a few comment updates. 2012-01-14 14:15:43 +00:00
lld A couple of big refactorings: 1) Move most attributes of Atom down to DefinedAtom, so only atoms representing definitions need to implement them. 2) Remove definitionTentative, definitionWeak, mergeDuplicates, and autoHide. Replace with merge and interposable attributes. 3) Make all methods on Atom be virtual so that future object file readers can lazily generated attributes 2012-01-11 01:06:19 +00:00
lldb I made two major improvements to the way the 2012-01-13 22:55:55 +00:00
llvm Fix a corner case hit by redundant phi elimination running after LSR. 2012-01-14 03:17:23 +00:00
polly Memaccess: Removing some unwanted code 2012-01-13 06:02:13 +00:00