diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-03-03 06:24:54 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-03-03 06:24:54 +0000 |
commit | 80d8eaae05d9bcb25abf6c6f0385ec2554355f26 (patch) | |
tree | ea0fa6d134dac5c2773a09c7ed01cbf5d9f2cbd0 | |
parent | fb43331226ae41cac862972c52a05f6c05dfcf19 (diff) |
Added isOperand(N): true if this is an operand of N
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26501 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGNodes.h | 7 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h index 02feba7106..5f66b63574 100644 --- a/include/llvm/CodeGen/SelectionDAGNodes.h +++ b/include/llvm/CodeGen/SelectionDAGNodes.h @@ -542,6 +542,7 @@ public: inline const SDOperand &getOperand(unsigned i) const; inline bool isTargetOpcode() const; inline unsigned getTargetOpcode() const; + inline const bool isOperand(SDNode *N) const; /// hasOneUse - Return true if there is exactly one operation using this /// result value of the defining operator. @@ -631,6 +632,9 @@ public: // isOnlyUse - Return true if this node is the only use of N. bool isOnlyUse(SDNode *N) const; + // isOperand - Return true if this node is an operand of N. + bool isOperand(SDNode *N) const; + /// getNumOperands - Return the number of values used by this operation. /// unsigned getNumOperands() const { return NumOperands; } @@ -937,6 +941,9 @@ inline bool SDOperand::isTargetOpcode() const { inline unsigned SDOperand::getTargetOpcode() const { return Val->getTargetOpcode(); } +inline const bool SDOperand::isOperand(SDNode *N) const { + return Val->isOperand(N); +} inline bool SDOperand::hasOneUse() const { return Val->hasNUsesOfValue(1, ResNo); } diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 24497af234..293ea60c33 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2533,6 +2533,13 @@ bool SDNode::isOnlyUse(SDNode *N) const { return Seen; } +// isOperand - Return true if this node is an operand of N. +bool SDNode::isOperand(SDNode *N) const { + for (unsigned i = 0, e = N->NumOperands; i != e; ++i) + if (this == N->OperandList[i].Val) + return true; + return false; +} const char *SDNode::getOperationName(const SelectionDAG *G) const { switch (getOpcode()) { |