aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-01-27 19:04:30 +0000
committerDan Gohman <gohman@apple.com>2009-01-27 19:04:30 +0000
commitc03e9a1040a975670a9c94e94d37dd3a940e0cd5 (patch)
treeceb016081f9a8d9b89758b55e8804c2fc665ae56
parent2d0f1c57c3f95e43a8b18bfe8481d90b665d5efe (diff)
downloadexternal_llvm-c03e9a1040a975670a9c94e94d37dd3a940e0cd5.zip
external_llvm-c03e9a1040a975670a9c94e94d37dd3a940e0cd5.tar.gz
external_llvm-c03e9a1040a975670a9c94e94d37dd3a940e0cd5.tar.bz2
Simplify findNonImmUse; return the result using the return value
instead of via a by-reference argument. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63118 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86ISelDAGToDAG.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp
index c5a6edd..54b04ec 100644
--- a/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -249,30 +249,30 @@ static SDNode *findFlagUse(SDNode *N) {
return NULL;
}
-/// findNonImmUse - Return true by reference in "found" if "Use" is an
-/// non-immediate use of "Def". This function recursively traversing
-/// up the operand chain ignoring certain nodes.
-static void findNonImmUse(SDNode *Use, SDNode* Def, SDNode *ImmedUse,
- SDNode *Root, bool &found,
+/// findNonImmUse - Return true if "Use" is a non-immediate use of "Def".
+/// This function recursively traverses up the operand chain, ignoring
+/// certain nodes.
+static bool findNonImmUse(SDNode *Use, SDNode* Def, SDNode *ImmedUse,
+ SDNode *Root,
SmallPtrSet<SDNode*, 16> &Visited) {
- if (found ||
- Use->getNodeId() < Def->getNodeId() ||
+ if (Use->getNodeId() < Def->getNodeId() ||
!Visited.insert(Use))
- return;
-
- for (unsigned i = 0, e = Use->getNumOperands(); !found && i != e; ++i) {
+ return false;
+
+ for (unsigned i = 0, e = Use->getNumOperands(); i != e; ++i) {
SDNode *N = Use->getOperand(i).getNode();
if (N == Def) {
if (Use == ImmedUse || Use == Root)
continue; // We are not looking for immediate use.
assert(N != Root);
- found = true;
- break;
+ return true;
}
// Traverse up the operand chain.
- findNonImmUse(N, Def, ImmedUse, Root, found, Visited);
+ if (findNonImmUse(N, Def, ImmedUse, Root, Visited))
+ return true;
}
+ return false;
}
/// isNonImmUse - Start searching from Root up the DAG to check is Def can
@@ -287,9 +287,7 @@ static void findNonImmUse(SDNode *Use, SDNode* Def, SDNode *ImmedUse,
/// its chain operand.
static inline bool isNonImmUse(SDNode *Root, SDNode *Def, SDNode *ImmedUse) {
SmallPtrSet<SDNode*, 16> Visited;
- bool found = false;
- findNonImmUse(Root, Def, ImmedUse, Root, found, Visited);
- return found;
+ return findNonImmUse(Root, Def, ImmedUse, Root, Visited);
}