Return Expand from getOperationAction for all extended
authorDuncan Sands <baldrick@free.fr>
Wed, 17 Oct 2007 13:49:58 +0000 (13:49 +0000)
committerDuncan Sands <baldrick@free.fr>
Wed, 17 Oct 2007 13:49:58 +0000 (13:49 +0000)
commitf411b83c8c6853c2a922b692e782566353153f08
tree3793516c2009fa295c5fb2c1a1894cdfe38c72b5
parentafc407ea5196b6ce638c25bd21569270504bb604
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.
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!
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43071 91177308-0d34-0410-b5e6-96231b3b80d8
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