[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