1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/test/DebugInfo/Generic
Peter Collingbourne 5b721561aa 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

llvm-svn: 252219
2015-11-05 22:03:56 +00:00
..
Inputs DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2009-10-16-Phi.ll
2009-11-03-InsertExtractValue.ll
2009-11-05-DeadGlobalVariable.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2009-11-06-NamelessGlobalVariable.ll
2009-11-10-CurrentFn.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-01-05-DbgScope.ll
2010-03-12-llc-crash.ll
2010-03-19-DbgDeclare.ll
2010-03-24-MemberFn.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-04-06-NestedFnDbgInfo.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-04-19-FramePtr.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-05-03-DisableFramePtr.ll
2010-05-03-OriginDIE.ll
2010-05-10-MultipleCU.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-06-29-InlinedFnLocalVar.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-07-19-Crash.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2010-10-01-crash.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
accel-table-hash-collisions.ll
array.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
block-asan.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
bug_null_debuginfo.ll
constant-pointers.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
constant-sdnodes-have-dbg-location.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
constantfp-sdnodes-have-dbg-location.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cross-cu-inlining.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cross-cu-linkonce-distinct.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cross-cu-linkonce.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cu-range-hole.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cu-ranges.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-at-specficiation.ll
dead-argument-order.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-info-always-inline.ll
debug-info-qualifiers.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debuginfofinder-forward-declaration.ll
debuginfofinder-multiple-cu.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
def-line.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dwarf-public-names.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
empty.ll
enum-types.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
enum.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
global.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
gmlt.test
gvn.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
incorrect-variable-debugloc1.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
incorrect-variable-debugloc.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inheritance.ll
inline-debug-info-multiret.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inline-debug-info.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inline-no-debug-info.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inline-scopes.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inlined-arguments.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inlined-vars.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
lit.local.cfg
location-verifier.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
lto-comp-dir.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
member-order.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
member-pointers.ll
missing-abstract-variable.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
multiline.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
namespace_function_definition.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
namespace_inline_function_definition.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
namespace.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
nodebug.ll
piece-verifier.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
PR20038.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
recursive_inlining.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
restrict.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
skeletoncu.ll [Hexagon] XFAILing test while diagnosing backend error. 2015-10-01 21:19:03 +00:00
sugared-constants.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
template-recursive-void.ll
tu-composite.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
tu-member-pointer.ll
two-cus-from-same-file.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
typedef.ll
unconditional-branch.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
varargs.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
version.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00