llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands 05e11fab87 When expanding unaligned loads and stores do not make
use of illegal integer types: instead, use a stack slot
and copying via integer registers.  The existing code
is still used if the bitconvert is to a legal integer
type.

This fires on the PPC testcases 2007-09-08-unaligned.ll
and vec_misaligned.ll.  It looks like equivalent code
is generated with these changes, just permuted, but
it's hard to tell.

With these changes, nothing in LegalizeDAG produces
illegal integer types anymore.  This is a prerequisite
for removing the LegalizeDAG type legalization code.

While there I noticed that the existing code doesn't
handle trunc store of f64 to f32: it turns this into
an i64 store, which represents a 4 byte stack smash.
I added a FIXME about this.  Hopefully someone more
motivated than I am will take care of it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-12 21:47:02 +00:00
..
CallingConvLower.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
CMakeLists.txt Experimental post-pass scheduling support. Post-pass scheduling 2008-11-19 23:18:57 +00:00
DAGCombiner.cpp Redo the arithmetic with overflow architecture. I was changing the semantics of 2008-12-12 00:56:36 +00:00
FastISel.cpp Factor out the code for sign-extending/truncating gep indices 2008-12-08 07:57:47 +00:00
LegalizeDAG.cpp When expanding unaligned loads and stores do not make 2008-12-12 21:47:02 +00:00
LegalizeFloatTypes.cpp Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
LegalizeIntegerTypes.cpp For amusement, implement SADDO, SSUBO, UADDO, USUBO 2008-12-10 12:30:42 +00:00
LegalizeTypes.cpp Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
LegalizeTypes.h For amusement, implement SADDO, SSUBO, UADDO, USUBO 2008-12-10 12:30:42 +00:00
LegalizeTypesGeneric.cpp Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
LegalizeVectorTypes.cpp Fix PR3117: not all nodes being legalized. The 2008-12-09 21:33:20 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAGFast.cpp Rewrite the SDep class, and simplify some of the related code. 2008-12-09 22:54:47 +00:00
ScheduleDAGList.cpp Rewrite the SDep class, and simplify some of the related code. 2008-12-09 22:54:47 +00:00
ScheduleDAGRRList.cpp Rewrite the SDep class, and simplify some of the related code. 2008-12-09 22:54:47 +00:00
ScheduleDAGSDNodes.cpp Rewrite the SDep class, and simplify some of the related code. 2008-12-09 22:54:47 +00:00
ScheduleDAGSDNodesEmit.cpp Experimental post-pass scheduling support. Post-pass scheduling 2008-11-19 23:18:57 +00:00
SelectionDAG.cpp Avoid generating a convert_rndsat node when the src and dest type are the same. 2008-12-11 03:30:13 +00:00
SelectionDAGBuild.cpp Whitespace fixes. 2008-12-10 00:28:22 +00:00
SelectionDAGBuild.h Add sub/mul overflow intrinsics. This currently doesn't have a 2008-12-09 22:08:41 +00:00
SelectionDAGISel.cpp If the type legalizer actually legalized anything 2008-11-24 14:53:14 +00:00
SelectionDAGPrinter.cpp Experimental post-pass scheduling support. Post-pass scheduling 2008-11-19 23:18:57 +00:00
TargetLowering.cpp Followup to r60283: optimize arbitrary width signed divisions as well 2008-11-30 06:35:39 +00:00