Speed up folding operations into loads.
authorChris Lattner <sabre@nondot.org>
Fri, 21 Jan 2005 21:43:02 +0000 (21:43 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 Jan 2005 21:43:02 +0000 (21:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19733 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelPattern.cpp

index 0b64354954b7d76eaf4eabe39fb90fbdbc415241..ae58afbf31000affe3acd125db6b8e3c54c27571 100644 (file)
@@ -504,7 +504,8 @@ static bool NodeTransitivelyUsesValue(SDOperand N, SDOperand Op,
                                       std::set<SDNode*> &Visited) {
   if (N == Op) return true;                        // Found it.
   SDNode *Node = N.Val;
-  if (Node->getNumOperands() == 0) return false;   // Leaf?
+  if (Node->getNumOperands() == 0 ||      // Leaf?
+      Node->getNodeDepth() <= Op.getNodeDepth()) return false; // Can't find it?
   if (!Visited.insert(Node).second) return false;  // Already visited?
 
   // Recurse for the first N-1 operands.