Go to file
Adrian Prantl 75819aedf6 [PR27284] Reverse the ownership between DICompileUnit and DISubprogram.
Currently each Function points to a DISubprogram and DISubprogram has a
scope field. For member functions the scope is a DICompositeType. DIScopes
point to the DICompileUnit to facilitate type uniquing.

Distinct DISubprograms (with isDefinition: true) are not part of the type
hierarchy and cannot be uniqued. This change removes the subprograms
list from DICompileUnit and instead adds a pointer to the owning compile
unit to distinct DISubprograms. This would make it easy for ThinLTO to
strip unneeded DISubprograms and their transitively referenced debug info.

Motivation
----------

Materializing DISubprograms is currently the most expensive operation when
doing a ThinLTO build of clang.

We want the DISubprogram to be stored in a separate Bitcode block (or the
same block as the function body) so we can avoid having to expensively
deserialize all DISubprograms together with the global metadata. If a
function has been inlined into another subprogram we need to store a
reference the block containing the inlined subprogram.

Attached to https://llvm.org/bugs/show_bug.cgi?id=27284 is a python script
that updates LLVM IR testcases to the new format.

http://reviews.llvm.org/D19034
<rdar://problem/25256815>

llvm-svn: 266446
2016-04-15 15:57:41 +00:00
clang Update to match LLVM changes for PR27284. 2016-04-15 15:55:45 +00:00
clang-tools-extra [clang-tidy] Add check misc-multiple-statement-macro 2016-04-14 21:15:57 +00:00
compiler-rt [TSAN] Make tsan tests more portable (take 3) 2016-04-15 12:34:00 +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 prepare-builtins: Remove call to getGlobalContext() 2016-04-15 14:18:58 +00:00
libcxx [libcxx] Remove the "reduced-arity-initialization" extension from the uses-allocator constructors 2016-04-15 03:29:40 +00:00
libcxxabi Update copyright year to 2016. 2016-03-30 22:40:47 +00:00
libunwind [AArch64] Fix libunwind build when using GNU assembler 2016-02-11 21:22:57 +00:00
lld Add an interesting GC testcase. 2016-04-15 15:26:52 +00:00
lldb Work around a linux libc bug causing a crash in TaskPool 2016-04-15 10:49:07 +00:00
llgo benchcomp: Add a mode for analyzing rule execution time in ninja log files. 2016-04-08 22:42:22 +00:00
llvm [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
openmp [ITTNOTIFY] Correct barrier imbalance time in case of tasks 2016-04-14 16:06:49 +00:00
polly [Polly] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-15 06:12:29 +00:00