SDOperand::isOperand should not be a forwarding. It must check *this against N's operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26502 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2006-03-03 06:42:32 +00:00
parent 80d8eaae05
commit bfa284f697
2 changed files with 10 additions and 4 deletions

View File

@ -531,6 +531,9 @@ public:
return SDOperand(Val, R);
}
// isOperand - Return true if this node is an operand of N.
bool isOperand(SDNode *N) const;
/// getValueType - Return the ValueType of the referenced return value.
///
inline MVT::ValueType getValueType() const;
@ -542,7 +545,6 @@ 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.
@ -941,9 +943,6 @@ 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

@ -2534,6 +2534,13 @@ bool SDNode::isOnlyUse(SDNode *N) const {
}
// isOperand - Return true if this node is an operand of N.
bool SDOperand::isOperand(SDNode *N) const {
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i)
if (*this == N->getOperand(i))
return true;
return false;
}
bool SDNode::isOperand(SDNode *N) const {
for (unsigned i = 0, e = N->NumOperands; i != e; ++i)
if (this == N->OperandList[i].Val)