llvm-6502/lib/CodeGen/SelectionDAG
David Blaikie 6d9dbd5526 Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions
Rather than using the full power of target-specific addressing modes in
DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This
reduces the complexity of debug info handling down to two
representations of values (reg+offset and frame index+offset) rather
than three or four.

Ideally we could ensure that frame indicies had been eliminated by the
time we reached an assembly or dwarf generation, but I haven't spent the
time to figure out where the FIs are leaking through into that & whether
there's a good place to convert them. Some FI+offset=>reg+offset
conversion is done (see PrologEpilogInserter, for example) which is
necessary for some SelectionDAG assumptions about registers, I believe,
but it might be possible to make this a more thorough conversion &
ensure there are no remaining FIs no matter how instruction selection
is performed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184066 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-16 20:34:15 +00:00
..
CMakeLists.txt
DAGCombiner.cpp SelectionDAG: slightly refactor DAGCombiner::visitSELECT_CC to avoid redudant checks... 2013-06-15 04:03:33 +00:00
FastISel.cpp Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions 2013-06-16 20:34:15 +00:00
FunctionLoweringInfo.cpp Don't cache the TargetLoweringInfo object inside of the FunctionLowering object. 2013-06-06 00:11:39 +00:00
InstrEmitter.cpp Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions 2013-06-16 20:34:15 +00:00
InstrEmitter.h
LegalizeDAG.cpp Introduce getSelect usage and use more getSelectCC 2013-06-14 22:04:37 +00:00
LegalizeFloatTypes.cpp Introduce getSelect usage and use more getSelectCC 2013-06-14 22:04:37 +00:00
LegalizeIntegerTypes.cpp Introduce getSelect usage and use more getSelectCC 2013-06-14 22:04:37 +00:00
LegalizeTypes.cpp Remove double semicolons. 2013-05-28 16:31:26 +00:00
LegalizeTypes.h Track IR ordering of SelectionDAG nodes 2/4. 2013-05-25 02:42:55 +00:00
LegalizeTypesGeneric.cpp Track IR ordering of SelectionDAG nodes 2/4. 2013-05-25 02:42:55 +00:00
LegalizeVectorOps.cpp Introduce getSelect usage and use more getSelectCC 2013-06-14 22:04:37 +00:00
LegalizeVectorTypes.cpp Introduce getSelect usage and use more getSelectCC 2013-06-14 22:04:37 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp Cache the TargetLowering info object as a pointer. 2013-06-06 00:43:09 +00:00
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp Cache the TargetLowering info object as a pointer. 2013-06-06 00:43:09 +00:00
ScheduleDAGSDNodes.cpp Fix PR16143: Insert DEBUG_VALUE before terminator. 2013-05-26 08:58:50 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp Track IR ordering of SelectionDAG nodes 3/4. 2013-05-25 03:08:10 +00:00
SelectionDAGBuilder.cpp Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions 2013-06-16 20:34:15 +00:00
SelectionDAGBuilder.h Track IR ordering of SelectionDAG nodes 3/4. 2013-05-25 03:08:10 +00:00
SelectionDAGDumper.cpp Track IR ordering of SelectionDAG nodes 2/4. 2013-05-25 02:42:55 +00:00
SelectionDAGISel.cpp Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions 2013-06-16 20:34:15 +00:00
SelectionDAGPrinter.cpp
TargetLowering.cpp TargetLowering: Clean up method description comments 2013-06-08 23:51:45 +00:00
TargetSelectionDAGInfo.cpp