1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/CodeGen/SelectionDAG
Duncan Sands ddce2cb415 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.

llvm-svn: 60964
2008-12-12 21:47:02 +00:00
..
CallingConvLower.cpp
CMakeLists.txt
DAGCombiner.cpp Redo the arithmetic with overflow architecture. I was changing the semantics of 2008-12-12 00:56:36 +00:00
FastISel.cpp
LegalizeDAG.cpp When expanding unaligned loads and stores do not make 2008-12-12 21:47:02 +00:00
LegalizeFloatTypes.cpp
LegalizeIntegerTypes.cpp For amusement, implement SADDO, SSUBO, UADDO, USUBO 2008-12-10 12:30:42 +00:00
LegalizeTypes.cpp
LegalizeTypes.h For amusement, implement SADDO, SSUBO, UADDO, USUBO 2008-12-10 12:30:42 +00:00
LegalizeTypesGeneric.cpp
LegalizeVectorTypes.cpp
Makefile
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
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
SelectionDAGISel.cpp
SelectionDAGPrinter.cpp
TargetLowering.cpp