mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Define CallSDNode, an SDNode subclass for use with ISD::CALL.
Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -463,6 +463,11 @@ public:
|
||||
return getNode(ISD::MERGE_VALUES, VTs, Ops, NumOps);
|
||||
}
|
||||
|
||||
/// getCall - Create a CALL node from the given information.
|
||||
///
|
||||
SDValue getCall(unsigned CallingConv, bool IsVarArgs, bool IsTailCall,
|
||||
SDVTList VTs, const SDValue *Operands, unsigned NumOperands);
|
||||
|
||||
/// 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.
|
||||
///
|
||||
@@ -731,7 +736,7 @@ public:
|
||||
SDValue getShuffleScalarElt(const SDNode *N, unsigned Idx);
|
||||
|
||||
private:
|
||||
void RemoveNodeFromCSEMaps(SDNode *N);
|
||||
bool RemoveNodeFromCSEMaps(SDNode *N);
|
||||
SDNode *AddNonLeafNodeToCSEMaps(SDNode *N);
|
||||
SDNode *FindModifiedNodeSlot(SDNode *N, SDValue Op, void *&InsertPos);
|
||||
SDNode *FindModifiedNodeSlot(SDNode *N, SDValue Op1, SDValue Op2,
|
||||
|
Reference in New Issue
Block a user