[llvm-branch-commits] [llvm-branch] r81978 - in /llvm/branches/release_26: lib/Target/X86/X86ISelDAGToDAG.cpp test/CodeGen/X86/combiner-aa-1.ll

Tanya Lattner tonic at nondot.org
Tue Sep 15 18:13:06 PDT 2009


Author: tbrethou
Date: Tue Sep 15 20:13:06 2009
New Revision: 81978

URL: http://llvm.org/viewvc/llvm-project?rev=81978&view=rev
Log:
Merge 81821 from mainline.
Don't pull a load through a callseq_start if the load's chain
has multiple uses, as one of the other uses may be on a path
to a different node above the callseq_start, because that
leads to a cyclic graph. This problem is exposed when
-combiner-global-alias-analysis is used. This fixes PR4880.

Added:
    llvm/branches/release_26/test/CodeGen/X86/combiner-aa-1.ll
      - copied unchanged from r81821, llvm/trunk/test/CodeGen/X86/combiner-aa-1.ll
Modified:
    llvm/branches/release_26/lib/Target/X86/X86ISelDAGToDAG.cpp

Modified: llvm/branches/release_26/lib/Target/X86/X86ISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_26/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=81978&r1=81977&r2=81978&view=diff

==============================================================================
--- llvm/branches/release_26/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
+++ llvm/branches/release_26/lib/Target/X86/X86ISelDAGToDAG.cpp Tue Sep 15 20:13:06 2009
@@ -447,7 +447,8 @@
   if (Chain.getOperand(0).getNode() == Callee.getNode())
     return true;
   if (Chain.getOperand(0).getOpcode() == ISD::TokenFactor &&
-      Callee.getValue(1).isOperandOf(Chain.getOperand(0).getNode()))
+      Callee.getValue(1).isOperandOf(Chain.getOperand(0).getNode()) &&
+      Callee.getValue(1).hasOneUse())
     return true;
   return false;
 }





More information about the llvm-branch-commits mailing list