Go to file
Richard Smith fe620d26ea [modules] Rework merging of redeclaration chains on module import.
We used to save out and eagerly load a (potentially huge) table of merged
formerly-canonical declarations when we loaded each module. This was extremely
inefficient in the presence of large amounts of merging, and didn't actually
save any merging lookup work, because we still needed to perform name lookup to
check that our merged declaration lists were complete. This also resulted in a
loss of laziness -- even if we only needed an early declaration of an entity, we
would eagerly pull in all declarations that had been merged into it regardless.

We now store the relevant fragments of the table within the declarations
themselves. In detail:

 * The first declaration of each entity within a module stores a list of first
   declarations from imported modules that are merged into it.
 * Loading that declaration pre-loads those other entities, so that they appear
   earlier within the redeclaration chain.
 * The name lookup tables list the most recent local lookup result, if there
   is one, or all directly-imported lookup results if not.

llvm-svn: 231424
2015-03-05 23:24:12 +00:00
clang [modules] Rework merging of redeclaration chains on module import. 2015-03-05 23:24:12 +00:00
clang-tools-extra Use std::string instead of StringRef to prevent use-after-free. 2015-03-05 23:17:32 +00:00
compiler-rt [sanitizer] Reconstruct the function that dumps block/edge coverage, hopefully making it more robust. Also increase the allowed coverage size on 32-bit. 2015-03-05 22:19:25 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Fix bitselect for float/double types v2 2015-03-05 15:31:05 +00:00
libcxx Run ShTests when the executor is an instance of LocalExecutor 2015-03-05 20:27:01 +00:00
libcxxabi Fix build with GCC: 2015-03-05 02:56:05 +00:00
lld Early return. NFC. 2015-03-05 20:22:14 +00:00
lldb Remove libedit and libncurses from LLDB_SYSTEM_LIBS if they're disabled. 2015-03-05 23:22:54 +00:00
llgo Fix test to use explicit load type. 2015-03-05 22:55:42 +00:00
llvm [X86] Remove stale comment. NFC. 2015-03-05 23:18:41 +00:00
openmp moved Windows-specific flags under the WINDOWS guard in CMake 2015-03-05 17:50:48 +00:00
polly Fix compilation after 'Make DataLayout Non-Optional in the Module' commit 2015-03-05 09:48:20 +00:00