llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands f9516208e5 Revert the SelectionDAG optimization that makes
it impossible to create a MERGE_VALUES node with
only one result: sometimes it is useful to be able
to create a node with only one result out of one of
the results of a node with more than one result, for
example because the new node will eventually be used
to replace a one-result node using ReplaceAllUsesWith,
cf X86TargetLowering::ExpandFP_TO_SINT.  On the other
hand, most users of MERGE_VALUES don't need this and
for them the optimization was valuable.  So add a new
utility method getMergeValues for creating MERGE_VALUES
nodes which by default performs the optimization.
Change almost everywhere to use getMergeValues (and
tidy some stuff up at the same time).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52893 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-30 10:19:09 +00:00
..
CallingConvLower.cpp Wrap MVT::ValueType in a struct to get type safety 2008-06-06 12:08:01 +00:00
DAGCombiner.cpp When folding a bitcast into a load or store, preserve the alignment 2008-06-28 00:45:22 +00:00
LegalizeDAG.cpp Revert the SelectionDAG optimization that makes 2008-06-30 10:19:09 +00:00
LegalizeFloatTypes.cpp Add support for expanding PPC 128 bit floats. 2008-06-25 20:24:48 +00:00
LegalizeIntegerTypes.cpp Add/complete support for integer and float 2008-06-25 16:34:21 +00:00
LegalizeTypes.cpp Share some code that is common between integer and 2008-06-20 18:40:50 +00:00
LegalizeTypes.h Add support for expanding PPC 128 bit floats. 2008-06-25 20:24:48 +00:00
LegalizeTypesGeneric.cpp Support for expanding the result of EXTRACT_ELEMENT. 2008-06-23 15:08:15 +00:00
LegalizeVectorTypes.cpp Cleanup up LegalizeTypes handling of loads and 2008-06-23 14:19:45 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp Remove a redundant return. 2008-06-21 19:34:57 +00:00
ScheduleDAGList.cpp Use the new PriorityQueue in ScheduleDAGList too, which also 2008-06-23 23:40:09 +00:00
ScheduleDAGRRList.cpp Move a DenseMap's declaration outside of a loop, and just call 2008-06-23 21:15:00 +00:00
SelectionDAG.cpp Revert the SelectionDAG optimization that makes 2008-06-30 10:19:09 +00:00
SelectionDAGISel.cpp Revert the SelectionDAG optimization that makes 2008-06-30 10:19:09 +00:00
SelectionDAGPrinter.cpp Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeId 2008-06-21 19:18:17 +00:00
TargetLowering.cpp Add support for expanding PPC 128 bit floats. 2008-06-25 20:24:48 +00:00