mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
bce66c31aa
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. llvm-svn: 214576 |
||
---|---|---|
.. | ||
PBQP | ||
Analysis.h | ||
AsmPrinter.h | ||
CalcSpillWeights.h | ||
CallingConvLower.h | ||
CommandFlags.h | ||
DAGCombine.h | ||
DFAPacketizer.h | ||
EdgeBundles.h | ||
FastISel.h | ||
FunctionLoweringInfo.h | ||
GCMetadata.h | ||
GCMetadataPrinter.h | ||
GCs.h | ||
GCStrategy.h | ||
IntrinsicLowering.h | ||
ISDOpcodes.h | ||
JITCodeEmitter.h | ||
JumpInstrTables.h | ||
LatencyPriorityQueue.h | ||
LexicalScopes.h | ||
LinkAllAsmWriterComponents.h | ||
LinkAllCodegenComponents.h | ||
LiveInterval.h | ||
LiveIntervalAnalysis.h | ||
LiveIntervalUnion.h | ||
LivePhysRegs.h | ||
LiveRangeEdit.h | ||
LiveRegMatrix.h | ||
LiveStackAnalysis.h | ||
LiveVariables.h | ||
MachineBasicBlock.h | ||
MachineBlockFrequencyInfo.h | ||
MachineBranchProbabilityInfo.h | ||
MachineCodeEmitter.h | ||
MachineCodeInfo.h | ||
MachineConstantPool.h | ||
MachineDominanceFrontier.h | ||
MachineDominators.h | ||
MachineFrameInfo.h | ||
MachineFunction.h | ||
MachineFunctionAnalysis.h | ||
MachineFunctionPass.h | ||
MachineInstr.h | ||
MachineInstrBuilder.h | ||
MachineInstrBundle.h | ||
MachineJumpTableInfo.h | ||
MachineLoopInfo.h | ||
MachineMemOperand.h | ||
MachineModuleInfo.h | ||
MachineModuleInfoImpls.h | ||
MachineOperand.h | ||
MachinePassRegistry.h | ||
MachinePostDominators.h | ||
MachineRegionInfo.h | ||
MachineRegisterInfo.h | ||
MachineRelocation.h | ||
MachineScheduler.h | ||
MachineSSAUpdater.h | ||
MachineTraceMetrics.h | ||
MachineValueType.h | ||
MachORelocation.h | ||
Passes.h | ||
PseudoSourceValue.h | ||
RegAllocPBQP.h | ||
RegAllocRegistry.h | ||
RegisterClassInfo.h | ||
RegisterPressure.h | ||
RegisterScavenging.h | ||
ResourcePriorityQueue.h | ||
RuntimeLibcalls.h | ||
ScheduleDAG.h | ||
ScheduleDAGInstrs.h | ||
ScheduleDFS.h | ||
ScheduleHazardRecognizer.h | ||
SchedulerRegistry.h | ||
ScoreboardHazardRecognizer.h | ||
SelectionDAG.h | ||
SelectionDAGISel.h | ||
SelectionDAGNodes.h | ||
SlotIndexes.h | ||
StackMapLivenessAnalysis.h | ||
StackMaps.h | ||
StackProtector.h | ||
TargetLoweringObjectFileImpl.h | ||
TargetSchedule.h | ||
ValueTypes.h | ||
ValueTypes.td | ||
VirtRegMap.h |