llvm-6502/include/llvm
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
..
ADT Delete dead code. 2014-07-29 00:38:55 +00:00
Analysis Header hygiene: remove using directive and #undef DEBUG_TYPE once we're done. 2014-07-30 00:25:24 +00:00
AsmParser Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Bitcode BitcodeReader: Fix some BlockAddress forward reference corner cases 2014-08-01 21:11:34 +00:00
CodeGen Debug info: Infrastructure to support debug locations for fragmented 2014-08-01 22:11:58 +00:00
Config Regenerate autoconf, previous updates to the configury haven't 2014-07-28 22:00:44 +00:00
DebugInfo Use a reference instead of a pointer. 2014-07-31 20:19:36 +00:00
ExecutionEngine Move virtual method out of line. 2014-08-01 18:49:24 +00:00
IR Debug info: Infrastructure to support debug locations for fragmented 2014-08-01 22:11:58 +00:00
IRReader Make a helper function static. No functionality change. 2014-07-05 00:39:08 +00:00
LineEditor [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
Linker IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
LTO Implement LTOModule on top of IRObjectFile. 2014-07-04 18:40:36 +00:00
MC Move MCObjectSymbolizer.h to MC/MCAnalysis. 2014-07-31 19:29:23 +00:00
Object A std::unique_ptr case I missed in the previous patch. 2014-07-31 03:36:00 +00:00
Option Option: Propagate flags from groups to options in each group 2014-07-12 00:18:58 +00:00
ProfileData ProfileData: Don't redundantly default initialize a member 2014-07-29 15:56:06 +00:00
Support [PowerPC] Add JMP_SLOT relocation definitions 2014-07-30 03:20:45 +00:00
TableGen Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
Target Add a non-const subtarget returning function to the target machine 2014-08-01 21:18:01 +00:00
Transforms Move -verify-use-list-order into llvm-uselistorder 2014-07-25 17:13:03 +00:00
CMakeLists.txt [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
InitializePasses.h Move -verify-use-list-order into llvm-uselistorder 2014-07-25 17:13:03 +00:00
LinkAllIR.h [cleanup] Move the Dominators.h and Verifier.h headers into the IR 2014-01-13 09:26:24 +00:00
LinkAllPasses.h Move -verify-use-list-order into llvm-uselistorder 2014-07-25 17:13:03 +00:00
module.modulemap [modules] Work around mislayering of MC / Object. 2014-07-26 01:10:32 +00:00
module.modulemap.build [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
Pass.h Revert "[PM] Add pass run listeners to the pass manager." 2014-05-15 17:49:20 +00:00
PassAnalysisSupport.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
PassInfo.h Remove pimpl class from PassRegistry. 2014-06-12 16:06:51 +00:00
PassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
PassRegistry.h Remove pimpl class from PassRegistry. 2014-06-12 16:06:51 +00:00
PassSupport.h Move GlobalMerge from Transform to CodeGen. 2014-06-13 22:57:59 +00:00