Go to file
Ted Kremenek 08037045f8 Refine SourceManager's isBeforeInTranslationUnit() cache to have more entries.
isBeforeInTranslationUnit() uses a cache to reduce the expensive work
to compute a common ancestor for two FileIDs.  This work is very
expensive, so even caching the latest used FileIDs was a big win.
A closer analysis of the cache before, however, shows that the cache
access pattern would oscillate between a working set of FileIDs, and
thus caching more pairs would be profitable.

This patch adds a side table for extending caching.  This side table
is bounded in size (experimentally determined in this case from
a simple Objective-C project), and when the table gets too large
we fall back to the single entry caching before as before.

On Sketch (a small example Objective-C project), this optimization
reduces -fsyntax-only time on SKTGraphicView.m by 5%.  This is
for a project that is already using PCH.

Fixes <rdar://problem/13299847>

llvm-svn: 176142
2013-02-27 00:00:26 +00:00
clang Refine SourceManager's isBeforeInTranslationUnit() cache to have more entries. 2013-02-27 00:00:26 +00:00
clang-tools-extra Add user documentation for cpp11-migrate 2013-02-25 20:37:03 +00:00
compiler-rt [Sanitizer] Don't die if external symbolizer is used on Mac, where it's not implemented yet 2013-02-26 13:40:51 +00:00
debuginfo-tests Harden this test a bit to work on the mac with ancient gdbs. 2013-01-17 20:09:50 +00:00
libclc Update the copyright coredits -- Happy new year 2013! 2013-01-01 10:00:19 +00:00
libcxx Michael van der Westhuizen: correction to the libcxx build instructions when built with libcxxrt on Linux. 2013-02-26 16:27:55 +00:00
libcxxabi Bruce Mitchener: Typo fixes. 2013-02-15 15:48:49 +00:00
lld [Pass][Layout] Fix bug and add debug printing. 2013-02-26 01:35:30 +00:00
lldb Fix one remaining mach port number/globally unique thread ID mixup which prevented queue names 2013-02-26 23:58:00 +00:00
llvm Enhance integer division emulation support to handle types smaller than 32 bits, 2013-02-26 23:33:20 +00:00
polly Use attributes references on call/invoke instructions. 2013-02-22 09:29:15 +00:00