[llvm-commits] [llvm] r43071 - in /llvm/trunk: include/llvm/CodeGen/SelectionDAG.h include/llvm/Target/TargetLowering.h lib/CodeGen/SelectionDAG/LegalizeDAG.cpp lib/CodeGen/SelectionDAG/LegalizeDAGTypes.cpp lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Chris Lattner
clattner at apple.com
Wed Oct 17 11:19:57 PDT 2007
On Oct 17, 2007, at 6:49 AM, Duncan Sands wrote:
> Author: baldrick
> Date: Wed Oct 17 08:49:58 2007
> New Revision: 43071
>
> URL: http://llvm.org/viewvc/llvm-project?rev=43071&view=rev
> Log:
> Return Expand from getOperationAction for all extended
> types. This is needed for SIGN_EXTEND_INREG at least.
> It is not clear if this is correct for other operations.
> On the other hand, for the various load/store actions
> it seems to correct to return the type action, as is
> currently done.
I'm not sure about this change. It seems to make more sense for an
i17 add to return promote, not expand, no? OTOH, <128 x float> add
should return expand.
More generally, I don't think we want to *ever* call
getOperationAction on invalid types, but I know of at least one case
where we do, and am not sure how to change it (x86 supports fp to i64
even though i64 isn't legal).
> Also, it seems that SelectionDAG::getValueType can be
> called for extended value types; introduce a map for
> holding these, since we don't really want to extend
> the vector to be 2^32 pointers long!
yay :)
> Generalize DAGTypeLegalizer::PromoteResult_TRUNCATE
> and DAGTypeLegalizer::PromoteResult_INT_EXTEND to handle
> the various funky possibilities that apints introduce,
> for example that you can promote to a type that needs
> to be expanded.
Ok. Thanks Duncan,
-Chris
More information about the llvm-commits
mailing list