llvm-6502/lib/CodeGen/SelectionDAG
Duncan Sands d462ba8539 Teach LegalizeTypes how to expand and promote CTLZ,
CTTZ and CTPOP.  The expansion code differs from
that in LegalizeDAG in that it chooses to take the
CTLZ/CTTZ count from the Hi/Lo part depending on
whether the Hi/Lo value is zero, not on whether
CTLZ/CTTZ of Hi/Lo returned 32 (or whatever the
width of the type is) for it.  I made this change
because the optimizers may well know that Hi/Lo
is zero and exploit it.  The promotion code for
CTTZ also differs from that in LegalizeDAG: it
uses an "or" to get the right result when the
original value is zero, rather than using a compare
and select.  This also means the value doesn't
need to be zero extended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47075 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-13 18:01:53 +00:00
..
CallingConvLower.cpp Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
DAGCombiner.cpp teach dag combiner how to eliminate MERGE_VALUES nodes. 2008-02-13 07:25:05 +00:00
LegalizeDAG.cpp Support legalizing insert_vector_elt on targets where the element 2008-02-13 06:43:04 +00:00
LegalizeTypes.cpp I don't see how NodeUpdated can be called with a 2008-02-04 09:29:17 +00:00
LegalizeTypes.h Teach LegalizeTypes how to expand and promote CTLZ, 2008-02-13 18:01:53 +00:00
LegalizeTypesExpand.cpp Teach LegalizeTypes how to expand and promote CTLZ, 2008-02-13 18:01:53 +00:00
LegalizeTypesPromote.cpp Teach LegalizeTypes how to expand and promote CTLZ, 2008-02-13 18:01:53 +00:00
LegalizeTypesScalarize.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
LegalizeTypesSplit.cpp * Introduce a new SelectionDAG::getIntPtrConstant method 2008-01-17 07:00:52 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp From Chris' review: use isa instead of explicitly using classof. 2008-02-11 19:00:34 +00:00
ScheduleDAGList.cpp Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
ScheduleDAGRRList.cpp Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
SelectionDAG.cpp Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t. 2008-02-13 00:35:47 +00:00
SelectionDAGISel.cpp In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower this 2008-02-13 07:39:09 +00:00
SelectionDAGPrinter.cpp Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
TargetLowering.cpp Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t. 2008-02-13 00:35:47 +00:00