summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DumpXML.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-01-14 16:32:05 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-01-14 16:32:05 +0000
commitb009517ad48365a16f45d482deea28a4af40ebaa (patch)
treeff09dac49d9c6ccb6d4fe3c6a04c30e678f12eca /clang/lib/AST/DumpXML.cpp
parentfb761ff54452fe837b82210b79e00b19117799eb (diff)
downloadbcm5719-llvm-b009517ad48365a16f45d482deea28a4af40ebaa.tar.gz
bcm5719-llvm-b009517ad48365a16f45d482deea28a4af40ebaa.zip
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
Diffstat (limited to 'clang/lib/AST/DumpXML.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud