llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands 01405f9284 Add support for expanding trunc stores. Consider
storing an i170 on a 32 bit machine.  This is first
promoted to a trunc-i170 store of an i256.  On a
little-endian machine this expands to a store of
an i128 and a trunc-i42 store of an i128.  The
trunc-i42 store is further expanded to a trunc-i42
store of an i64, then to a store of an i32 and a
trunc-i10 store of an i32.  At this point the operand
type is legal (i32) and expansion stops (legalization
of the trunc-i10 needs to be handled in LegalizeDAG.cpp).
On big-endian machines the high bits are stored first,
and some bit-fiddling is needed in order to generate
aligned stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43499 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30 12:50:39 +00:00
..
CallingConvLower.cpp propagate struct size and alignment of byval arguments to the DAG 2007-08-10 14:44:42 +00:00
DAGCombiner.cpp Fix a DAGCombiner abort on a bitcast from a scalar to a vector. 2007-10-29 20:44:42 +00:00
LegalizeDAG.cpp The guaranteed alignment of ptr+offset is only the minimum of 2007-10-28 12:59:45 +00:00
LegalizeDAGTypes.cpp Add support for expanding trunc stores. Consider 2007-10-30 12:50:39 +00:00
Makefile For PR780: 2006-07-26 16:18:00 +00:00
ScheduleDAG.cpp EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like 2007-10-12 08:50:34 +00:00
ScheduleDAGList.cpp Make CalcLatency() non-recursive. 2007-10-15 21:33:22 +00:00
ScheduleDAGRRList.cpp One mundane change: Change ReplaceAllUsesOfValueWith to *optionally* 2007-10-15 06:10:22 +00:00
SelectionDAG.cpp If a call to getTruncStore is for a normal store, 2007-10-30 12:40:58 +00:00
SelectionDAGISel.cpp - Remove the hacky code that forces a memcpy. Alignment is taken care of in the 2007-10-26 20:24:42 +00:00
SelectionDAGPrinter.cpp Add a (disabled by default) way to view the ID of a node. 2007-10-15 05:32:43 +00:00
TargetLowering.cpp Add runtime library names for pow. 2007-10-11 23:09:10 +00:00