forked from OSchip/llvm-project
75819aedf6
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 |
||
---|---|---|
.. | ||
2008-11-17-Shl64.ll | ||
2009-01-08-Crash.ll | ||
2009-01-14-Remat-Crash.ll | ||
2009-03-27-v2f64-param.ll | ||
2009-07-15-store192.ll | ||
2010-02-25-LSR-Crash.ll | ||
2011-01-31-DAGCombineBug.ll | ||
2011-08-01-DynamicAllocBug.ll | ||
DbgValueOtherTargets.test | ||
addsub64.ll | ||
aliases.ll | ||
align.ll | ||
alignment.ll | ||
ashr.ll | ||
atomic.ll | ||
basictest.ll | ||
bigstructret.ll | ||
byVal.ll | ||
call.ll | ||
codemodel.ll | ||
constants.ll | ||
dwarf_debug.ll | ||
epilogue_prologue.ll | ||
events.ll | ||
exception.ll | ||
float-intrinsics.ll | ||
fneg.ll | ||
getid.ll | ||
globals.ll | ||
indirectbr.ll | ||
inline-asm.ll | ||
ladd_lsub_combine.ll | ||
licm-ldwcp.ll | ||
linkage.ll | ||
lit.local.cfg | ||
llvm-intrinsics.ll | ||
load.ll | ||
memcpy.ll | ||
misc-intrinsics.ll | ||
mkmsk.ll | ||
mul64.ll | ||
offset_folding.ll | ||
private.ll | ||
ps-intrinsics.ll | ||
resources.ll | ||
resources_combine.ll | ||
scavenging.ll | ||
sext.ll | ||
shedulingPreference.ll | ||
sr-intrinsics.ll | ||
store.ll | ||
switch.ll | ||
switch_long.ll | ||
threads.ll | ||
tls.ll | ||
trampoline.ll | ||
trap.ll | ||
unaligned_load.ll | ||
unaligned_store.ll | ||
unaligned_store_combine.ll | ||
varargs.ll | ||
zext.ll | ||
zextfree.ll |