llvm-6502/include/llvm/IR
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
..
Argument.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
AssemblyAnnotationWriter.h
Attributes.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
AutoUpgrade.h Rename loop unrolling and loop vectorizer metadata to have a common prefix. 2014-06-25 15:41:00 +00:00
BasicBlock.h IR: Add BasicBlock::insertInto() 2014-08-01 21:22:04 +00:00
CallingConv.h
CallSite.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
CFG.h Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
CMakeLists.txt
Comdat.h IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
Constant.h InstCombine: Don't turn -(x/INT_MIN) -> x/INT_MIN 2014-07-02 06:07:09 +00:00
ConstantFolder.h Add CreatePointerBitCastOrAddrSpaceCast to IRBuilder and co. 2014-07-14 17:24:35 +00:00
ConstantRange.h
Constants.h
DataLayout.h Fix typo 2014-06-25 23:39:08 +00:00
DebugInfo.h Debug info: Infrastructure to support debug locations for fragmented 2014-08-01 22:11:58 +00:00
DebugLoc.h
DerivedTypes.h
DiagnosticInfo.h Rename DiagnosticInfoOptimizationWarning to DiagnosticInfoOptimizationFailure 2014-07-18 19:36:04 +00:00
DiagnosticPrinter.h
DIBuilder.h Debug info: Infrastructure to support debug locations for fragmented 2014-08-01 22:11:58 +00:00
Dominators.h Move operator[] to DomTreeNodeBase 2014-07-02 06:50:48 +00:00
Function.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
GetElementPtrTypeIterator.h
GlobalAlias.h IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
GlobalObject.h IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
GlobalValue.h Add the missing hasLinkOnceODRLinkage predicate. 2014-07-30 15:57:51 +00:00
GlobalVariable.h
GVMaterializer.h
InlineAsm.h
InstIterator.h
InstrTypes.h Add CreatePointerBitCastOrAddrSpaceCast to IRBuilder and co. 2014-07-14 17:24:35 +00:00
Instruction.def
Instruction.h AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
Instructions.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
InstVisitor.h
IntrinsicInst.h
Intrinsics.h TableGen: introduce support for MSBuiltin 2014-07-04 18:42:25 +00:00
Intrinsics.td Add @llvm.assume, lowering, and some basic properties 2014-07-25 21:13:35 +00:00
IntrinsicsAArch64.td Port memory barriers intrinsics to AArch64 2014-07-17 10:50:20 +00:00
IntrinsicsARM.td ARM: mark matching ARM intrinsics as MSBuiltin 2014-07-05 20:09:24 +00:00
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td [NVPTX] Add more surface/texture intrinsics, including CUDA unified texture fetch 2014-07-17 11:59:04 +00:00
IntrinsicsPowerPC.td
IntrinsicsR600.td R600: Fix inconsistency in rsq instructions. 2014-06-24 22:13:39 +00:00
IntrinsicsX86.td AVX-512: Fixed intrinsic of VSQRTPS/PD instructions. 2014-07-22 11:07:31 +00:00
IntrinsicsXCore.td
IRBuilder.h Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
IRPrintingPasses.h
LeakDetector.h
LegacyPassManager.h
LegacyPassManagers.h
LegacyPassNameParser.h
LLVMContext.h Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
Mangler.h
MDBuilder.h Simplify and improve scoped-noalias metadata semantics 2014-07-25 15:50:02 +00:00
Metadata.h Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
Module.h IR: Expose Module::rbegin() and rend() 2014-07-28 21:09:32 +00:00
NoFolder.h
OperandTraits.h
Operator.h
PassManager.h
PatternMatch.h
PredIteratorCache.h
SymbolTableListTraits.h
Type.h
TypeBuilder.h
TypeFinder.h
Use.h
UseListOrder.h Revert "UseListOrder: Remove move assignment" 2014-07-30 00:25:33 +00:00
User.h
Value.h IR: Fix comment from r213824 2014-07-24 02:56:59 +00:00
ValueHandle.h
ValueMap.h
ValueSymbolTable.h
Verifier.h