llvm-6502/lib/CodeGen/AsmPrinter
Duncan P. N. Exon Smith 88e419d66e DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable
Remove 'inlinedAt:' from MDLocalVariable.  Besides saving some memory
(variables with it seem to be single largest `Metadata` contributer to
memory usage right now in -g -flto builds), this stops optimization and
backend passes from having to change local variables.

The 'inlinedAt:' field was used by the backend in two ways:

 1. To tell the backend whether and into what a variable was inlined.
 2. To create a unique id for each inlined variable.

Instead, rely on the 'inlinedAt:' field of the intrinsic's `!dbg`
attachment, and change the DWARF backend to use a typedef called
`InlinedVariable` which is `std::pair<MDLocalVariable*, MDLocation*>`.
This `DebugLoc` is already passed reliably through the backend (as
verified by r234021).

This commit removes the check from r234021, but I added a new check
(that will survive) in r235048, and changed the `DIBuilder` API in
r235041 to require a `!dbg` attachment whose 'scope:` is in the same
`MDSubprogram` as the variable's.

If this breaks your out-of-tree testcases, perhaps the script I used
(mdlocalvariable-drop-inlinedat.sh) will help; I'll attach it to PR22778
in a moment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235050 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-15 22:29:27 +00:00
..
AddressPool.cpp DWARF Type Units: Avoid emitting type units under fission if the type requires an address. 2014-04-26 17:27:38 +00:00
AddressPool.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ARMException.cpp Move the EH symbol to the asm printer and use it for the SJLJ case too. 2015-03-17 13:57:48 +00:00
AsmPrinter.cpp DebugInfo: Gut DISubprogram and DILexicalBlock* 2015-04-14 03:40:37 +00:00
AsmPrinterDwarf.cpp Store an optional section start label in MCSection. 2015-03-10 16:58:10 +00:00
AsmPrinterHandler.h Print jump tables before exception tables. 2015-03-09 18:29:12 +00:00
AsmPrinterInlineAsm.cpp [AsmPrinter] Use the per-function subtarget to emit inline asm instructions that 2015-03-16 18:02:16 +00:00
ByteStreamer.h Refactor DebugLocDWARFExpression so it doesn't require access to the 2015-03-02 22:02:33 +00:00
CMakeLists.txt Debug info: Factor out the creation of DWARF expressions from AsmPrinter 2015-01-12 22:19:22 +00:00
DbgValueHistoryCalculator.cpp DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable 2015-04-15 22:29:27 +00:00
DbgValueHistoryCalculator.h DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable 2015-04-15 22:29:27 +00:00
DebugLocEntry.h DebugInfo: Gut DIExpression 2015-04-14 01:12:42 +00:00
DebugLocList.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
DIE.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
DIEHash.cpp Use read{16,32,64}{le,be}() instead of *reinterpret_cast<u{little,big}{16,32,64}_t>(). 2015-03-02 21:19:12 +00:00
DIEHash.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
DwarfAccelTable.cpp Centralize the handling of unique ids for temporary labels. 2015-03-17 20:07:06 +00:00
DwarfAccelTable.h Store an optional section start label in MCSection. 2015-03-10 16:58:10 +00:00
DwarfCFIException.cpp Move the EH symbol to the asm printer and use it for the SJLJ case too. 2015-03-17 13:57:48 +00:00
DwarfCompileUnit.cpp DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable 2015-04-15 22:29:27 +00:00
DwarfCompileUnit.h Store an optional section start label in MCSection. 2015-03-10 16:58:10 +00:00
DwarfDebug.cpp DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable 2015-04-15 22:29:27 +00:00
DwarfDebug.h DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable 2015-04-15 22:29:27 +00:00
DwarfException.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
DwarfExpression.cpp DebugInfo: Remove special iterators from DIExpression 2015-04-07 03:45:57 +00:00
DwarfExpression.h DebugInfo: Remove special iterators from DIExpression 2015-04-07 03:45:57 +00:00
DwarfFile.cpp DebugInfo: Gut DIVariable and DIGlobalVariable 2015-04-14 02:22:36 +00:00
DwarfFile.h Store an optional section start label in MCSection. 2015-03-10 16:58:10 +00:00
DwarfStringPool.cpp Centralize the handling of unique ids for temporary labels. 2015-03-17 20:07:06 +00:00
DwarfStringPool.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
DwarfUnit.cpp DebugInfo: Gut DISubprogram and DILexicalBlock* 2015-04-14 03:40:37 +00:00
DwarfUnit.h DebugInfo: Remove DITypedArray<>, replace with typedefs 2015-04-07 04:14:33 +00:00
EHStreamer.cpp [WinEH] Run cleanup handlers when an exception is thrown 2015-03-30 22:58:10 +00:00
EHStreamer.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
ErlangGCPrinter.cpp Compute the ELF SectionKind from the flags. 2015-01-29 17:33:21 +00:00
LLVMBuild.txt Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile
OcamlGCPrinter.cpp Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
Win64Exception.cpp [WinEH] Try to make the MachineFunction CFG more accurate 2015-04-15 18:48:15 +00:00
Win64Exception.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
WinCodeViewLineTables.cpp DebugInfo: Gut DISubprogram and DILexicalBlock* 2015-04-14 03:40:37 +00:00
WinCodeViewLineTables.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00