llvm-6502/lib/CodeGen/SelectionDAG
Dan Gohman 57fc82d409 Generalize ExtendUsesToFormExtLoad to be usable for ANY_EXTEND,
in addition to ZERO_EXTEND and SIGN_EXTEND. Fix a bug in the
way it checked for live-out values, and simplify the way it
find users by using SDNode::use_iterator's (relatively) new
features. Also, make it slightly more permissive on targets
with free truncates.

In SelectionDAGBuild, avoid creating ANY_EXTEND nodes that are
larger than necessary. If the target's SwitchAmountTy has
enough bits, use it. This exposes the truncate to optimization
early, enabling more optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68670 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-09 03:51:29 +00:00
..
CallingConvLower.cpp Minor top-level comment fix. 2009-03-31 16:51:18 +00:00
CMakeLists.txt Experimental post-pass scheduling support. Post-pass scheduling 2008-11-19 23:18:57 +00:00
DAGCombiner.cpp Generalize ExtendUsesToFormExtLoad to be usable for ANY_EXTEND, 2009-04-09 03:51:29 +00:00
FastISel.cpp Don't attempt to handle aggregate argument values in FastISel; let 2009-04-07 20:40:11 +00:00
LegalizeDAG.cpp Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused. 2009-04-03 00:25:26 +00:00
LegalizeFloatTypes.cpp Soft float support for FREM. 2009-04-08 16:20:57 +00:00
LegalizeIntegerTypes.cpp Fully general expansion of integer shift of any size. 2009-03-31 19:39:24 +00:00
LegalizeTypes.cpp Fix PR3899: add support for extracting floats from vectors 2009-03-29 13:51:06 +00:00
LegalizeTypes.h Soft float support for FREM. 2009-04-08 16:20:57 +00:00
LegalizeTypesGeneric.cpp Added missing support for widening when splitting an unary op (PR3683) 2009-03-18 06:24:04 +00:00
LegalizeVectorTypes.cpp Added missing support for widening when splitting an unary op (PR3683) 2009-03-18 06:24:04 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
ScheduleDAGFast.cpp When scheduling a block in parts, keep track of the overall 2009-02-11 04:27:20 +00:00
ScheduleDAGList.cpp When scheduling a block in parts, keep track of the overall 2009-02-11 04:27:20 +00:00
ScheduleDAGRRList.cpp Minor compile-time optimization; don't bother checking 2009-03-24 00:50:07 +00:00
ScheduleDAGSDNodes.cpp Don't set SUnit::hasPhysRegDefs to true unless the defs are 2009-03-23 17:39:36 +00:00
ScheduleDAGSDNodes.h When scheduling a block in parts, keep track of the overall 2009-02-11 04:27:20 +00:00
ScheduleDAGSDNodesEmit.cpp For inline asm output operand that matches an input. Encode the input operand index in the high bits. 2009-03-20 18:03:34 +00:00
SelectionDAG.cpp Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused. 2009-04-03 00:25:26 +00:00
SelectionDAGBuild.cpp Generalize ExtendUsesToFormExtLoad to be usable for ANY_EXTEND, 2009-04-09 03:51:29 +00:00
SelectionDAGBuild.h Initialize LiveOutInfo's APInt members to zero, as APInt's 2009-03-27 23:51:02 +00:00
SelectionDAGISel.cpp Fix what surely must be a copy+pasto. 2009-03-27 23:55:04 +00:00
SelectionDAGPrinter.cpp Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 2009-03-13 07:51:59 +00:00
TargetLowering.cpp Implement support for using modeling implicit-zero-extension on x86-64 2009-04-08 00:15:30 +00:00