llvm-6502/lib/CodeGen/SelectionDAG
Dan Gohman 50284d81f8 Change SelectionDAG::getConstantPool to always set the alignment of the
ConstantPoolSDNode, using the target's preferred alignment for the
constant type.

In LegalizeDAG, when performing loads from the constant pool, the
ConstantPoolSDNode's alignment is used in the calls to getLoad and
getExtLoad.

This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly
choosing the ABI alignment for constant pool loads when Alignment == 0.
The incorrect alignment is only a performance issue when ABI alignment
does not equal preferred alignment (i.e., on x86 it was generating
MOVUPS instead of MOVAPS for v4f32 constant loads when the default ABI
alignment for 128bit vectors is forced to 1 byte.)

Patch by Paul Redmond!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56253 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-16 22:05:41 +00:00
..
CallingConvLower.cpp Define CallSDNode, an SDNode subclass for use with ISD::CALL. 2008-09-13 01:54:27 +00:00
DAGCombiner.cpp Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and 2008-09-12 18:08:03 +00:00
FastISel.cpp FastISel support for i1 constants. 2008-09-10 21:01:08 +00:00
LegalizeDAG.cpp Change SelectionDAG::getConstantPool to always set the alignment of the 2008-09-16 22:05:41 +00:00
LegalizeFloatTypes.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeIntegerTypes.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
LegalizeTypes.cpp Reverting r56249. On further investigation, this functionality isn't needed. 2008-09-16 21:48:12 +00:00
LegalizeTypes.h Provide two overloads of AnalyzeNewNode. 2008-09-01 15:10:19 +00:00
LegalizeTypesGeneric.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
LegalizeVectorTypes.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +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 Reverting r56249. On further investigation, this functionality isn't needed. 2008-09-16 21:48:12 +00:00
ScheduleDAGList.cpp Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk 2008-07-17 19:10:17 +00:00
ScheduleDAGRRList.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
SelectionDAG.cpp Change SelectionDAG::getConstantPool to always set the alignment of the 2008-09-16 22:05:41 +00:00
SelectionDAGBuild.cpp Reverting r56249. On further investigation, this functionality isn't needed. 2008-09-16 21:48:12 +00:00
SelectionDAGBuild.h Implement "visitPow". This is mainly used to see if we have a pow() call of this 2008-09-10 00:20:20 +00:00
SelectionDAGISel.cpp Don't take the time to CheckDAGForTailCallsAndFixThem when tail calls 2008-09-16 01:42:28 +00:00
SelectionDAGPrinter.cpp Reverting r56249. On further investigation, this functionality isn't needed. 2008-09-16 21:48:12 +00:00
TargetLowering.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00