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);
+ SDOperand N2, SDOperand N3, SDOperand N4,
+ MVT::ValueType EVT);
/// getLoad - Loads are not normal binary operators: their result type is not
/// determined by their operands, and they produce a value AND a token chain.
///
- SDOperand getLoad(MVT::ValueType VT, SDOperand Chain, SDOperand Ptr, SDOperand SV);
+ SDOperand getLoad(MVT::ValueType VT, SDOperand Chain, SDOperand Ptr,
+ SDOperand SV);
// getSrcValue - construct a node to track a Value* through the backend
SDOperand getSrcValue(const Value* I, int offset = 0);
ADJCALLSTACKDOWN, // Beginning of a call sequence
ADJCALLSTACKUP, // End of a call sequence
+ // SRCVALUE - This corresponds to a Value*, and is used to associate memory
+ // locations with their value. This allows one use alias analysis
+ // information in the backend.
+ SRCVALUE,
+
// PCMARKER - This corresponds to the pcmarker intrinsic.
PCMARKER,
- // SRCVALUE - This corresponds to a Value*, and is used to carry associate
- // memory operations with their corrosponding load. This lets one use the
- // pointer analysis information in the backend
- SRCVALUE,
+ // READPORT, WRITEPORT, READIO, WRITEIO - These correspond to the LLVM
+ // intrinsics of the same name. The first operand is a token chain, the
+ // other operands match the intrinsic. These produce a token chain in
+ // addition to a value (if any).
+ READPORT, WRITEPORT, READIO, WRITEIO,
// BUILTIN_OP_END - This must be the last enum value in this list.
BUILTIN_OP_END,