1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00

Added isOperand(N): true if this is an operand of N

llvm-svn: 26501
This commit is contained in:
Evan Cheng 2006-03-03 06:24:54 +00:00
parent b91460b269
commit 183b913508
2 changed files with 14 additions and 0 deletions

View File

@ -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);
}

View File

@ -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()) {