llvm-6502/lib
Adrian Prantl 2a39c993eb Debug info: Infrastructure to support debug locations for fragmented
variables (for example, by-value struct arguments passed in registers, or
large integer values split across several smaller registers).
On the IR level, this adds a new type of complex address operation OpPiece
to DIVariable that describes size and offset of a variable fragment.
On the DWARF emitter level, all pieces describing the same variable are
collected, sorted and emitted as DWARF expressions using the DW_OP_piece
and DW_OP_bit_piece operators.

http://reviews.llvm.org/D3373
rdar://problem/15928306

What this patch doesn't do / Future work:
- This patch only adds the backend machinery to make this work, patches
  that change SROA and SelectionDAG's type legalizer to actually create
  such debug info will follow. (http://reviews.llvm.org/D2680)
- Making the DIVariable complex expressions into an argument of dbg.value
  will reduce the memory footprint of the debug metadata.
- The sorting/uniquing of pieces should be moved into DebugLocEntry,
  to facilitate the merging of multi-piece entries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214576 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01 22:11:58 +00:00
..
Analysis
AsmParser
Bitcode BitcodeReader: Change mechanics of BlockAddress forward references, NFC 2014-08-01 21:51:52 +00:00
CodeGen Debug info: Infrastructure to support debug locations for fragmented 2014-08-01 22:11:58 +00:00
DebugInfo
ExecutionEngine Include Archive.h 2014-08-01 19:28:15 +00:00
IR Debug info: Infrastructure to support debug locations for fragmented 2014-08-01 22:11:58 +00:00
IRReader
LineEditor
Linker
LTO
MC
Object
Option
ProfileData
Support
TableGen
Target [SDAG] MorphNodeTo recursively deletes dead operands of the old 2014-08-01 22:09:43 +00:00
Transforms [dfsan] Correctly handle loads and stores of zero size. 2014-08-01 21:18:18 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile