llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands 0954aefd81 Temporarily allow the operands of a BUILD_VECTOR
to have a different type to the vector element
type.  This should be fairly harmless because in
the past guys like this were being built all over
the place (and were cleaned up when I added this
check).  The reason for relaxing this check is
that it helps LegalizeTypes legalize vector
shuffles: the mask is a BUILD_VECTOR that it is
*not always possible* to legalize while keeping it
a BUILD_VECTOR (vector_shuffle requires the mask
to be a BUILD_VECTOR, as opposed to a vector with
the right vector type).  With this check it is even
harder to legalize the mask - turning the check off
means that LegalizeTypes manages to legalize almost
all vector shuffles encountered in practice.  The
correct solution is to change vector_shuffle to be a
variadic node with the mask built into it as operands.
While waiting for that change, this hack stops the
problem with vector_shuffle from blocking the turning
on of LegalizeTypes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57965 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22 09:00:33 +00:00
..
CallingConvLower.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
CMakeLists.txt Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
DAGCombiner.cpp Use a legal integer type for vector shuffle mask 2008-10-19 14:58:05 +00:00
FastISel.cpp FastISel support for exception-handling constructs. 2008-10-14 23:54:11 +00:00
LegalizeDAG.cpp Add an SSE2 algorithm for uint64->f64 conversion. 2008-10-21 20:50:01 +00:00
LegalizeFloatTypes.cpp Use DAG.getIntPtrConstant rather than DAG.getConstant 2008-10-20 16:14:43 +00:00
LegalizeIntegerTypes.cpp LegalizeTypes support for atomic operation promotion. 2008-10-20 16:17:42 +00:00
LegalizeTypes.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
LegalizeTypes.h Support operations like fp_to_uint with a vector 2008-10-20 16:31:21 +00:00
LegalizeTypesGeneric.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
LegalizeVectorTypes.cpp Support operations like fp_to_uint with a vector 2008-10-20 16:31:21 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp Separate MachineInstr-emitting routines from actual scheduling 2008-09-03 16:01:59 +00:00
ScheduleDAGEmit.cpp Next round of earlyclobber handling. Approach the 2008-09-24 01:07:17 +00:00
ScheduleDAGFast.cpp Fix command-line option printing to print two spaces where needed, 2008-10-14 20:25:08 +00:00
ScheduleDAGList.cpp Fix command-line option printing to print two spaces where needed, 2008-10-14 20:25:08 +00:00
ScheduleDAGRRList.cpp Fix command-line option printing to print two spaces where needed, 2008-10-14 20:25:08 +00:00
SelectionDAG.cpp Temporarily allow the operands of a BUILD_VECTOR 2008-10-22 09:00:33 +00:00
SelectionDAGBuild.cpp Fix SelectionDAGBuild lowering of Select instructions to 2008-10-21 20:00:42 +00:00
SelectionDAGBuild.h Factor out the code for mapping LLVM IR condition opcodes to 2008-10-17 21:16:08 +00:00
SelectionDAGISel.cpp Fast-isel no longer an experiment. 2008-10-20 21:30:12 +00:00
SelectionDAGPrinter.cpp Don't truncate GlobalAddress offsets to int in debug output. 2008-10-18 18:22:42 +00:00
TargetLowering.cpp Teach DAGCombine to fold constant offsets into GlobalAddress nodes, 2008-10-18 02:06:02 +00:00