llvm/unittests
Peter Collingbourne 5f220beefc DI: Reverse direction of subprogram -> function edge.
Previously, subprograms contained a metadata reference to the function they
described. Because most clients need to get or set a subprogram for a given
function rather than the other way around, this created unneeded inefficiency.

For example, many passes needed to call the function llvm::makeSubprogramMap()
to build a mapping from functions to subprograms, and the IR linker needed to
fix up function references in a way that caused quadratic complexity in the IR
linking phase of LTO.

This change reverses the direction of the edge by storing the subprogram as
function-level metadata and removing DISubprogram's function field.

Since this is an IR change, a bitcode upgrade has been provided.

Fixes PR23367. An upgrade script for textual IR for out-of-tree clients is
attached to the PR.

Differential Revision: http://reviews.llvm.org/D14265

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252219 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-05 22:03:56 +00:00
..
ADT Add a unittest for SmallDenseMap that tests assigning a SmallDenseMap when it is not small. 2015-10-31 05:23:53 +00:00
Analysis [AA] Enhance the new AliasAnalysis infrastructure with an optional 2015-10-21 12:15:19 +00:00
AsmParser Fix PR 24633 - Handle undef values when parsing standalone constants. 2015-09-09 13:44:33 +00:00
Bitcode Fix memory leak in unit test of Bitcode/BitReaderTest.cpp 2015-08-03 21:23:51 +00:00
CodeGen AsmPrinter: Use an intrusively linked list for DIE::Children 2015-06-25 23:52:10 +00:00
DebugInfo Fix compilation of PDBApiTest. 2015-05-01 20:51:49 +00:00
ExecutionEngine Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
IR DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LineEditor Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Linker unittests: Remove implicit ilist iterator conversions, NFC 2015-10-20 18:30:20 +00:00
MC Add a RAW mode to StringTableBuilder. 2015-10-23 21:48:05 +00:00
Option [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
ProfileData Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
Support Fix unit tests on Windows: handle env vars with non-ASCII chars. 2015-11-04 08:25:20 +00:00
Transforms DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
CMakeLists.txt AsmParser: Require a terminating null character when creating memory buffer. 2015-05-20 20:41:27 +00:00
Makefile AsmParser: Require a terminating null character when creating memory buffer. 2015-05-20 20:41:27 +00:00
Makefile.unittest