aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/SelectionDAG.h6
-rw-r--r--include/llvm/CodeGen/SelectionDAGNodes.h18
2 files changed, 9 insertions, 15 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h
index fb9a10ff95..355053d772 100644
--- a/include/llvm/CodeGen/SelectionDAG.h
+++ b/include/llvm/CodeGen/SelectionDAG.h
@@ -171,6 +171,9 @@ public:
SDOperand getNode(unsigned Opcode, MVT::ValueType VT,
SDOperand N1, SDOperand N2, SDOperand N3, SDOperand N4);
SDOperand getNode(unsigned Opcode, MVT::ValueType VT,
+ SDOperand N1, SDOperand N2, SDOperand N3, SDOperand N4,
+ SDOperand N5);
+ SDOperand getNode(unsigned Opcode, MVT::ValueType VT,
std::vector<SDOperand> &Children);
SDOperand getNode(unsigned Opcode, std::vector<MVT::ValueType> &ResultTys,
std::vector<SDOperand> &Ops);
@@ -183,9 +186,6 @@ public:
SDOperand N, MVT::ValueType EVT);
SDOperand getNode(unsigned Opcode, MVT::ValueType VT, SDOperand N1,
SDOperand N2, SDOperand N3, MVT::ValueType EVT);
- SDOperand getNode(unsigned Opcode, MVT::ValueType VT, SDOperand N1,
- SDOperand N2, SDOperand N3, SDOperand N4,
- MVT::ValueType EVT);
/// getLoad - Loads are not normal binary operators: their result type is not
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h
index a289772ff0..6528766164 100644
--- a/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -176,7 +176,8 @@ namespace ISD {
FNEG, FABS, FSQRT, FSIN, FCOS,
// Other operators. LOAD and STORE have token chains as their first
- // operand, then the same operands as an LLVM load/store instruction.
+ // operand, then the same operands as an LLVM load/store instruction, then a
+ // SRCVALUE node that provides alias analysis information.
LOAD, STORE,
// EXTLOAD, SEXTLOAD, ZEXTLOAD - These three operators are instances of the
@@ -197,9 +198,9 @@ namespace ISD {
// TRUNCSTORE - This operators truncates (for integer) or rounds (for FP) a
// value and stores it to memory in one operation. This can be used for
- // either integer or floating point operands, and the stored type
- // represented as the 'extra' value type in the MVTSDNode representing the
- // operator. This node has the same three operands as a standard store.
+ // either integer or floating point operands. The first four operands of
+ // this are the same as a standard store. The fifth is the ValueType to
+ // store it as (which will be smaller than the source value).
TRUNCSTORE,
// DYNAMIC_STACKALLOC - Allocate some number of bytes on the stack aligned
@@ -877,12 +878,6 @@ protected:
: SDNode(Opc, Op0, Op1, Op2), ExtraValueType(EVT) {
setValueTypes(VT1, VT2);
}
-
- MVTSDNode(unsigned Opc, MVT::ValueType VT,
- SDOperand Op0, SDOperand Op1, SDOperand Op2, SDOperand Op3, MVT::ValueType EVT)
- : SDNode(Opc, Op0, Op1, Op2, Op3), ExtraValueType(EVT) {
- setValueTypes(VT);
- }
public:
MVT::ValueType getExtraValueType() const { return ExtraValueType; }
@@ -892,8 +887,7 @@ public:
return
N->getOpcode() == ISD::EXTLOAD ||
N->getOpcode() == ISD::SEXTLOAD ||
- N->getOpcode() == ISD::ZEXTLOAD ||
- N->getOpcode() == ISD::TRUNCSTORE;
+ N->getOpcode() == ISD::ZEXTLOAD;
}
};