llvm-6502/include/llvm/CodeGen
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
..
PBQP [PBQP] NDEBUG guards added around code needed for assert. 2015-02-17 07:45:06 +00:00
Analysis.h Fold a loop for array processing in ComputeLinearIndex 2015-01-14 05:33:01 +00:00
AsmPrinter.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
BasicTTIImpl.h Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
CalcSpillWeights.h [PBQP] Tweak spill costs and coalescing benefits 2014-11-04 20:51:24 +00:00
CallingConvLower.h ARM: treat [N x i32] and [N x i64] as AAPCS composite types 2015-02-24 17:22:34 +00:00
CommandFlags.h Add r228980 back. 2015-02-17 20:48:01 +00:00
DAGCombine.h
DFAPacketizer.h Remove the TargetMachine from DFAPacketizer since it was only 2014-10-14 01:03:16 +00:00
DIE.h Add DIEInteger::setValue() method. 2015-03-06 23:22:46 +00:00
EdgeBundles.h
FastISel.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
FunctionLoweringInfo.h Remove dead code for llvm.eh.selector in the old EH model 2015-01-14 18:49:39 +00:00
GCMetadata.h Revert GCStrategy ownership changes 2015-01-26 18:26:35 +00:00
GCMetadataPrinter.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
GCs.h clang-format all the GC related files (NFC) 2015-01-16 23:16:12 +00:00
GCStrategy.h [gcroot] Remove unused items from an enum 2015-04-02 05:02:16 +00:00
IntrinsicLowering.h
ISDOpcodes.h Reverted 230471 - gather scatter handling in table gen. 2015-03-01 08:23:41 +00:00
LatencyPriorityQueue.h Remove LatencyPriorityQueue::dump because it relies on an implicit copy ctor which is deprecated in C++11 (due to the presence of a user-declare dtor in the base class) 2015-03-03 21:16:56 +00:00
LexicalScopes.h DebugLoc: Remove getFromDILexicalBlock() 2015-03-30 23:47:26 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Introduce an example statepoint GC strategy 2015-01-07 19:07:50 +00:00
LiveInterval.h Recommit r231168: unique_ptrify LiveRange::segmentSet 2015-03-04 01:20:33 +00:00
LiveIntervalAnalysis.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LiveIntervalUnion.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
LivePhysRegs.h Fix uses of reserved identifiers starting with an underscore followed by an uppercase letter 2015-03-16 18:06:57 +00:00
LiveRangeEdit.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LiveRegMatrix.h
LiveStackAnalysis.h Recommit r231175: Change LiveStackAnalysis::SS2IntervalMap from std::map to std::unordered_map 2015-03-04 01:15:53 +00:00
LiveVariables.h
MachineBasicBlock.h CodeGen: assert an instruction is being inserted with the correct iterator. 2014-11-14 00:34:59 +00:00
MachineBlockFrequencyInfo.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MachineBranchProbabilityInfo.h
MachineCombinerPattern.h
MachineConstantPool.h
MachineDominanceFrontier.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
MachineDominators.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MachineFrameInfo.h [WinEH] Sink UnwindHelp completely out of IR 2015-04-03 22:32:26 +00:00
MachineFunction.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
MachineFunctionAnalysis.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MachineFunctionPass.h
MachineInstr.h DebugInfo: Remove DIDescriptor::Verify() 2015-04-06 19:49:39 +00:00
MachineInstrBuilder.h CodeGen: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:40 +00:00
MachineInstrBundle.h
MachineJumpTableInfo.h
MachineLoopInfo.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
MachineMemOperand.h [BranchFolding] Remove MMOs during tail merge to preserve dependencies. 2015-03-10 16:22:52 +00:00
MachineModuleInfo.h DebugInfo: Remove 'inlinedAt:' field from MDLocalVariable 2015-04-15 22:29:27 +00:00
MachineModuleInfoImpls.h Clear the stub map in getSortedStubs. 2015-04-07 12:59:28 +00:00
MachineOperand.h Rewrite MachineOperand::print and MachineInstr::print to avoid 2015-02-27 00:11:34 +00:00
MachinePassRegistry.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MachinePostDominators.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MachineRegionInfo.h Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
MachineRegisterInfo.h MachineRegisterInfo: Make it clear that hints are for vregs 2015-04-03 00:18:33 +00:00
MachineScheduler.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MachineSSAUpdater.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
MachineTraceMetrics.h
MachineValueType.h Make VTs and UnicodeCharSet ctors constexpr if the compiler supports it. 2015-03-01 18:10:07 +00:00
MachORelocation.h
Passes.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
PBQPRAConstraint.h Remove redundant virtual on overriden functions. 2014-11-14 19:06:36 +00:00
PseudoSourceValue.h
RegAllocPBQP.h [PBQP] Do not add an edge between nodes with totally disjoint allowed registers 2015-03-01 20:39:34 +00:00
RegAllocRegistry.h
RegisterClassInfo.h
RegisterPressure.h Remove declarations for nonexistent methods 2015-04-01 21:16:02 +00:00
RegisterScavenging.h
ResourcePriorityQueue.h unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
RuntimeLibcalls.h SDAG: Merge the meat of two ExpandAtomic implementations. 2015-03-05 20:04:29 +00:00
ScheduleDAG.h Remove the explicit SUnitIterator::operator= as the default is just fine 2015-03-03 21:17:00 +00:00
ScheduleDAGInstrs.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
ScheduleDFS.h
ScheduleHazardRecognizer.h
SchedulerRegistry.h
ScoreboardHazardRecognizer.h
SelectionDAG.h Allow memory intrinsics to be tail calls 2015-04-13 17:16:45 +00:00
SelectionDAGISel.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
SelectionDAGNodes.h move helper function closer to use; NFC 2015-04-07 19:13:06 +00:00
SlotIndexes.h Removing LLVM_EXPLICIT, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:00:20 +00:00
StackMaps.h Remove dead calls and function arguments dealing with TRI in StackMaps. 2015-03-20 21:05:18 +00:00
StackProtector.h
TargetLoweringObjectFileImpl.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
TargetSchedule.h
ValueTypes.h Make VTs and UnicodeCharSet ctors constexpr if the compiler supports it. 2015-03-01 18:10:07 +00:00
ValueTypes.td Intrinsics: introduce llvm_any_ty aka ValueType Any 2015-01-22 20:14:38 +00:00
VirtRegMap.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
WinEHFuncInfo.h [WinEHPrepare] Don't rely on the order of IR 2015-04-10 04:56:17 +00:00