Changes in directory llvm/include/llvm/CodeGen:
SelectionDAG.h updated: 1.135 -> 1.136 SelectionDAGNodes.h updated: 1.153 -> 1.154 --- Log message: Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode. --- Diffs of the changes: (+23 -14) SelectionDAG.h | 5 ++++- SelectionDAGNodes.h | 32 +++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) Index: llvm/include/llvm/CodeGen/SelectionDAG.h diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.135 llvm/include/llvm/CodeGen/SelectionDAG.h:1.136 --- llvm/include/llvm/CodeGen/SelectionDAG.h:1.135 Thu Oct 12 15:33:14 2006 +++ llvm/include/llvm/CodeGen/SelectionDAG.h Fri Oct 13 16:08:54 2006 @@ -319,7 +319,10 @@ /// getStore - Helper function to build ISD::STORE nodes. /// SDOperand getStore(SDOperand Chain, SDOperand Value, SDOperand Ptr, - SDOperand SV); + const Value *SV, int SVOffset, bool isVolatile=false); + SDOperand getTruncStore(SDOperand Chain, SDOperand Value, SDOperand Ptr, + const Value *SV, int SVOffset, MVT::ValueType TVT, + bool isVolatile=false); // getSrcValue - construct a node to track a Value* through the backend SDOperand getSrcValue(const Value* I, int offset = 0); Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.153 llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.154 --- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.153 Wed Oct 11 02:08:53 2006 +++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h Fri Oct 13 16:08:54 2006 @@ -1408,15 +1408,6 @@ assert((Off.getOpcode() == ISD::UNDEF || AddrMode == ISD::POST_INDEXED) && "Only post-indexed load has a non-undef offset operand"); } - LoadSDNode(SDOperand Chain, SDOperand Ptr, SDOperand Off, - ISD::LoadExtType ETy, MVT::ValueType LVT, - const Value *SV, int O=0, unsigned Align=1, bool Vol=false) - : SDNode(ISD::LOAD, Chain, Ptr, Off), - AddrMode(ISD::UNINDEXED), ExtType(ETy), LoadedVT(LVT), SrcValue(SV), - SVOffset(O), Alignment(Align), IsVolatile(Vol) { - assert((Off.getOpcode() == ISD::UNDEF || AddrMode == ISD::POST_INDEXED) && - "Only post-indexed load has a non-undef offset operand"); - } public: const SDOperand getChain() const { return getOperand(0); } @@ -1461,10 +1452,10 @@ bool IsVolatile; protected: friend class SelectionDAG; - StoreSDNode(SDOperand Chain, SDOperand Ptr, SDOperand Off, + StoreSDNode(SDOperand Chain, SDOperand Value, SDOperand Ptr, SDOperand Off, ISD::MemOpAddrMode AM, bool isTrunc, MVT::ValueType SVT, const Value *SV, int O=0, unsigned Align=0, bool Vol=false) - : SDNode(ISD::STORE, Chain, Ptr, Off), + : SDNode(ISD::STORE, Chain, Value, Ptr, Off), AddrMode(AM), IsTruncStore(isTrunc), StoredVT(SVT), SrcValue(SV), SVOffset(O), Alignment(Align), IsVolatile(Vol) { assert((Off.getOpcode() == ISD::UNDEF || AddrMode == ISD::POST_INDEXED) && @@ -1473,8 +1464,9 @@ public: const SDOperand getChain() const { return getOperand(0); } - const SDOperand getBasePtr() const { return getOperand(1); } - const SDOperand getOffset() const { return getOperand(2); } + const SDOperand getValue() const { return getOperand(1); } + const SDOperand getBasePtr() const { return getOperand(2); } + const SDOperand getOffset() const { return getOperand(3); } ISD::MemOpAddrMode getAddressingMode() const { return AddrMode; } bool isTruncatingStore() const { return IsTruncStore; } MVT::ValueType getStoredVT() const { return StoredVT; } @@ -1591,6 +1583,20 @@ return N->getOpcode() == ISD::LOAD && cast<LoadSDNode>(N)->getExtensionType() == ISD::ZEXTLOAD; } + + /// isNON_TRUNCStore - Returns true if the specified node is a non-truncating + /// store. + inline bool isNON_TRUNCStore(const SDNode *N) { + return N->getOpcode() == ISD::STORE && + !cast<StoreSDNode>(N)->isTruncatingStore(); + } + + /// isTRUNCStore - Returns true if the specified node is a truncating + /// store. + inline bool isTRUNCStore(const SDNode *N) { + return N->getOpcode() == ISD::STORE && + cast<StoreSDNode>(N)->isTruncatingStore(); + } } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits