From: Duncan Sands Date: Fri, 18 Apr 2008 20:27:12 +0000 (+0000) Subject: Add some more FIXME's for indexed loads and stores. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4cc04564567686e62ec5aed7ef9efc7b3ef973aa;p=oota-llvm.git Add some more FIXME's for indexed loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49916 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypesPromote.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypesPromote.cpp index 93c8c605841..6d7f0630aed 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypesPromote.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeTypesPromote.cpp @@ -193,6 +193,7 @@ SDOperand DAGTypeLegalizer::PromoteResult_SETCC(SDNode *N) { } SDOperand DAGTypeLegalizer::PromoteResult_LOAD(LoadSDNode *N) { + // FIXME: Add support for indexed loads. MVT::ValueType NVT = TLI.getTypeToTransformTo(N->getValueType(0)); ISD::LoadExtType ExtType = ISD::isNON_EXTLoad(N) ? ISD::EXTLOAD : N->getExtensionType(); @@ -637,6 +638,7 @@ void DAGTypeLegalizer::PromoteSetCCOperands(SDOperand &NewLHS,SDOperand &NewRHS, } SDOperand DAGTypeLegalizer::PromoteOperand_STORE(StoreSDNode *N, unsigned OpNo){ + // FIXME: Add support for indexed stores. SDOperand Ch = N->getChain(), Ptr = N->getBasePtr(); int SVOffset = N->getSrcValueOffset(); unsigned Alignment = N->getAlignment(); diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypesScalarize.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypesScalarize.cpp index ae3a09fb0c6..d9ba99fb896 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypesScalarize.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeTypesScalarize.cpp @@ -93,6 +93,7 @@ SDOperand DAGTypeLegalizer::ScalarizeRes_UNDEF(SDNode *N) { } SDOperand DAGTypeLegalizer::ScalarizeRes_LOAD(LoadSDNode *N) { + // FIXME: Add support for indexed loads. SDOperand Result = DAG.getLoad(MVT::getVectorElementType(N->getValueType(0)), N->getChain(), N->getBasePtr(), N->getSrcValue(), N->getSrcValueOffset(), @@ -224,6 +225,7 @@ SDOperand DAGTypeLegalizer::ScalarizeOp_EXTRACT_VECTOR_ELT(SDNode *N) { /// ScalarizeOp_STORE - If the value to store is a vector that needs to be /// scalarized, it must be <1 x ty>. Just store the element. SDOperand DAGTypeLegalizer::ScalarizeOp_STORE(StoreSDNode *N, unsigned OpNo) { + // FIXME: Add support for indexed stores. assert(OpNo == 1 && "Do not know how to scalarize this operand!"); return DAG.getStore(N->getChain(), GetScalarizedOp(N->getOperand(1)), N->getBasePtr(), N->getSrcValue(), N->getSrcValueOffset(), diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypesSplit.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypesSplit.cpp index b46b6585403..d1057c98cd0 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypesSplit.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeTypesSplit.cpp @@ -126,6 +126,7 @@ void DAGTypeLegalizer::SplitRes_UNDEF(SDNode *N, SDOperand &Lo, SDOperand &Hi) { void DAGTypeLegalizer::SplitRes_LOAD(LoadSDNode *LD, SDOperand &Lo, SDOperand &Hi) { + // FIXME: Add support for indexed loads. MVT::ValueType LoVT, HiVT; GetSplitDestVTs(LD->getValueType(0), LoVT, HiVT); @@ -398,6 +399,7 @@ bool DAGTypeLegalizer::SplitOperand(SDNode *N, unsigned OpNo) { } SDOperand DAGTypeLegalizer::SplitOp_STORE(StoreSDNode *N, unsigned OpNo) { + // FIXME: Add support for indexed stores. assert(OpNo == 1 && "Can only split the stored value"); SDOperand Ch = N->getChain();