llvm-6502/include/llvm/CodeGen
Jakob Stoklund Olesen 0613516b16 Implement the first half of LiveDebugVariables.
Scan the MachineFunction for DBG_VALUE instructions, and replace them with a
data structure similar to LiveIntervals. The live range of a DBG_VALUE is
determined by propagating it down the dominator tree until a new DBG_VALUE is
found. When a DBG_VALUE lives in a register, its live range is confined to the
live range of the register's value.

LiveDebugVariables runs before coalescing, so DBG_VALUEs are not artificially
extended when registers are joined.

The missing half will recreate DBG_VALUE instructions from the intervals when
register allocation is complete.

The pass is disabled by default. It can be enabled with the temporary command
line option -live-debug-variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120636 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-02 00:37:37 +00:00
..
PBQP Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals). 2010-09-21 13:19:36 +00:00
Analysis.h Enable sibling call optimization of libcalls which are expanded during 2010-11-30 23:55:39 +00:00
AsmPrinter.h Merge System into Support. 2010-11-29 18:16:10 +00:00
BinaryObject.h Merge System into Support. 2010-11-29 18:16:10 +00:00
CalcSpillWeights.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
CallingConvLower.h In the calling convention logic, ValVT is always a legal type, 2010-11-04 10:49:57 +00:00
FastISel.h Prune includes. 2010-11-06 11:45:59 +00:00
FunctionLoweringInfo.h Reapply r112623. Included additional check for unused byval argument. 2010-08-31 22:22:42 +00:00
GCMetadata.h Attach a DebugLoc to a GC point in order to get precise information in the JIT of a GC point. 2010-09-24 17:27:50 +00:00
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
ISDOpcodes.h Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept. 2010-11-23 03:31:01 +00:00
JITCodeEmitter.h Merge System into Support. 2010-11-29 18:16:10 +00:00
LatencyPriorityQueue.h
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h This is a prototype of an experimental register allocation 2010-10-22 23:09:15 +00:00
LiveInterval.h Print out the connected components in the verifier after complaining about their 2010-10-29 00:40:57 +00:00
LiveIntervalAnalysis.h RABasic is nearly functionally complete. There are a few remaining 2010-11-10 19:18:47 +00:00
LiveStackAnalysis.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
LiveVariables.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
MachineBasicBlock.h Add SkipPHIsAndLabels from PHIElimination to MachineBasicBlock. It is needed 2010-10-30 01:26:14 +00:00
MachineCodeEmitter.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineCodeInfo.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineConstantPool.h
MachineDominators.h typoes 2010-09-10 22:25:58 +00:00
MachineFrameInfo.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineFunction.h move the pic base symbol stuff up to MachineFunction 2010-11-14 22:48:15 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
MachineInstr.h add some helper methods for asmprinter flags, from PR8417 2010-11-21 08:30:55 +00:00
MachineInstrBuilder.h Initial va_arg support for x86-64. Patch by David Meyer! 2010-10-12 18:00:49 +00:00
MachineJumpTableInfo.h
MachineLocation.h
MachineLoopInfo.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
MachineMemOperand.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineModuleInfo.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE. 2010-10-06 23:54:39 +00:00
MachineRelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineSSAUpdater.h
MachORelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
ObjectCodeEmitter.h
Passes.h Rename ExpandPseudos to ExpandISelPseudos to help clarify its role. 2010-11-18 18:45:06 +00:00
PostRAHazardRecognizer.h Merge System into Support. 2010-11-29 18:16:10 +00:00
ProcessImplicitDefs.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
PseudoSourceValue.h
RegAllocPBQP.h Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details. 2010-09-23 04:28:54 +00:00
RegAllocRegistry.h
RegisterCoalescer.h Merge System into Support. 2010-11-29 18:16:10 +00:00
RegisterScavenging.h
RuntimeLibcalls.h
ScheduleDAG.h SDep is POD-like. Shave off a few bytes from SUnit by moving a member around. 2010-11-25 17:50:19 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h Add an ILP scheduler. This is a register pressure aware scheduler that's 2010-07-24 00:39:05 +00:00
SelectionDAG.h On X86, MEMBARRIER, MFENCE, SFENCE, LFENCE are not target memory intrinsics, 2010-11-20 11:25:00 +00:00
SelectionDAGISel.h Simplify. 2010-10-25 21:31:46 +00:00
SelectionDAGNodes.h Merge System into Support. 2010-11-29 18:16:10 +00:00
SlotIndexes.h Implement the first half of LiveDebugVariables. 2010-12-02 00:37:37 +00:00
TargetLoweringObjectFileImpl.h nuke dead ivar which was supposed to be committed with r112496 2010-08-30 18:16:27 +00:00
ValueTypes.h Merge System into Support. 2010-11-29 18:16:10 +00:00
ValueTypes.td fix comments; patch by Edmund Grimley-Evans\! 2010-09-17 17:52:00 +00:00