llvm-6502/lib/CodeGen/SelectionDAG
Dan Gohman 7c3234c6be Reorganize the lifetimes of the major objects SelectionDAGISel
works with.

SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering
objects now get created once per SelectionDAGISel instance, and
can be reused across blocks and across functions. Previously,
they were created and destroyed each time they were needed.

This reorganization simplifies the handling of PHI nodes, and
also SwitchCases, JumpTables, and BitTestBlocks. This
simplification has the side effect of fixing a bug in FastISel
where successor PHI nodes weren't being updated correctly.

This is also a step towards making the transition from FastISel
into and out of SelectionDAG faster, and also making
plain SelectionDAG faster on code with lots of little blocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55450 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-27 23:52:12 +00:00
..
CallingConvLower.cpp Trim unnecessary #includes. 2008-07-11 20:38:31 +00:00
DAGCombiner.cpp disallow direct access to SDValue::ResNo, provide a getter instead 2008-08-26 22:36:50 +00:00
FastISel.cpp Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel. 2008-08-27 22:30:02 +00:00
LegalizeDAG.cpp disallow direct access to SDValue::ResNo, provide a getter instead 2008-08-26 22:36:50 +00:00
LegalizeFloatTypes.cpp Add the remaining fp_round libcalls: 2008-08-07 19:01:24 +00:00
LegalizeIntegerTypes.cpp Rename SDOperand to SDValue. 2008-07-27 21:46:04 +00:00
LegalizeTypes.cpp Avoid an empty-if-body warning in release builds. 2008-08-20 14:00:56 +00:00
LegalizeTypes.h Add the remaining fp_round libcalls: 2008-08-07 19:01:24 +00:00
LegalizeTypesGeneric.cpp Rename SDOperand to SDValue. 2008-07-27 21:46:04 +00:00
LegalizeVectorTypes.cpp Add libm-oriented ISD opcodes for rounding operations. 2008-08-21 17:55:02 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp Optimize ScheduleDAG's ComputeDepths and ComputeHeights to not need 2008-08-27 16:27:25 +00:00
ScheduleDAGList.cpp Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk 2008-07-17 19:10:17 +00:00
ScheduleDAGRRList.cpp Optimize ScheduleDAGRRList's topological sort to use one pass instead 2008-08-27 16:29:48 +00:00
SelectionDAG.cpp Reorganize the lifetimes of the major objects SelectionDAGISel 2008-08-27 23:52:12 +00:00
SelectionDAGISel.cpp Reorganize the lifetimes of the major objects SelectionDAGISel 2008-08-27 23:52:12 +00:00
SelectionDAGPrinter.cpp disallow direct access to SDValue::ResNo, provide a getter instead 2008-08-26 22:36:50 +00:00
TargetLowering.cpp Add libcalls for the new rounding opcodes. 2008-08-21 18:38:14 +00:00