[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