diff options
author | Dan Gohman <gohman@apple.com> | 2009-01-27 19:04:30 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-01-27 19:04:30 +0000 |
commit | c03e9a1040a975670a9c94e94d37dd3a940e0cd5 (patch) | |
tree | ceb016081f9a8d9b89758b55e8804c2fc665ae56 | |
parent | 2d0f1c57c3f95e43a8b18bfe8481d90b665d5efe (diff) | |
download | external_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.cpp | 30 |
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); } |