1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/lib/CodeGen/AsmPrinter
Adrian Prantl fb3abba237 [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
..
AddressPool.cpp
AddressPool.h One more batch of self-containing headers. 2016-01-27 19:29:56 +00:00
ARMException.cpp [EH] Handle non-Function personalities like unknown personalities 2015-08-31 20:02:16 +00:00
AsmPrinter.cpp [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
AsmPrinterDwarf.cpp Generalize ownership/passing semantics to allow dsymutil to own abbreviations via unique_ptr 2015-11-18 00:34:10 +00:00
AsmPrinterHandler.h Extract the method to begin and end a fragment in AsmPrinterHandler in their own method. NFC 2016-02-26 20:30:37 +00:00
AsmPrinterInlineAsm.cpp Enable the %s modifier in inline asm template string 2016-02-04 16:18:08 +00:00
ByteStreamer.h
CMakeLists.txt [codeview] Describe int local variables using .cv_def_range 2016-02-10 20:55:49 +00:00
CodeViewDebug.cpp Suppress a -Wunused-variable warning in release builds. 2016-03-20 01:17:54 +00:00
CodeViewDebug.h [codeview] Only emit function ids for inlined functions 2016-03-18 18:54:32 +00:00
DbgValueHistoryCalculator.cpp Consider regmasks when computing register-based DBG_VALUE live ranges 2016-03-25 17:54:46 +00:00
DbgValueHistoryCalculator.h One more batch of self-containing headers. 2016-01-27 19:29:56 +00:00
DebugHandlerBase.cpp Sink DI metadata usage out of MachineInstr.h and MachineInstrBuilder.h 2016-04-14 18:29:59 +00:00
DebugHandlerBase.h Make header self-contained. NFC. 2016-02-18 18:02:48 +00:00
DebugLocEntry.h Make headers self-contained again. 2016-03-04 10:49:30 +00:00
DebugLocStream.cpp
DebugLocStream.h
DIE.cpp DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
DIEHash.cpp DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
DIEHash.h [AsmPrinter] Prune dead code. NFC. 2015-10-15 17:16:32 +00:00
DwarfAccelTable.cpp Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
DwarfAccelTable.h
DwarfCFIException.cpp Fix warning in DwarfCFIException. NFC 2016-02-26 20:49:07 +00:00
DwarfCompileUnit.cpp Drop debug info for DISubprograms that are not referenced by anything 2016-04-09 18:10:22 +00:00
DwarfCompileUnit.h Drop debug info for DISubprograms that are not referenced by anything 2016-04-09 18:10:22 +00:00
DwarfDebug.cpp [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
DwarfDebug.h [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
DwarfException.h Extract the method to begin and end a fragment in AsmPrinterHandler in their own method. NFC 2016-02-26 20:30:37 +00:00
DwarfExpression.cpp DwarfDebug: Support floating point constants in location lists. 2016-04-08 00:38:37 +00:00
DwarfExpression.h DwarfDebug: Support floating point constants in location lists. 2016-04-08 00:38:37 +00:00
DwarfFile.cpp DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
DwarfFile.h DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
DwarfStringPool.cpp
DwarfStringPool.h
DwarfUnit.cpp Revert "Recommitted r263424 "Supporting all entities declared in lexical scope in LLVM debug info." After fixing PR26942 (the fix is included in this commit)." 2016-03-24 20:38:49 +00:00
DwarfUnit.h Revert "Recommitted r263424 "Supporting all entities declared in lexical scope in LLVM debug info." After fixing PR26942 (the fix is included in this commit)." 2016-03-24 20:38:49 +00:00
EHStreamer.cpp
EHStreamer.h Extract the method to begin and end a fragment in AsmPrinterHandler in their own method. NFC 2016-02-26 20:30:37 +00:00
ErlangGCPrinter.cpp
LLVMBuild.txt Reland "[CodeView] Use assembler directives for line tables" 2016-01-29 00:49:42 +00:00
OcamlGCPrinter.cpp
WinException.cpp [WinEH] Allocate the registration node before the catch objects 2016-03-01 04:30:16 +00:00
WinException.h [WinEH] Move WinEHFuncInfo from MachineModuleInfo to MachineFunction 2015-11-17 21:10:25 +00:00