diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2006-02-01 00:20:21 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2006-02-01 00:20:21 +0000 |
| commit | e1ce4d7115e1ff9899ad3f6b91f8907bb081906c (patch) | |
| tree | 032c976cc7e0fbaa84623821179569ad62eae6f6 /llvm | |
| parent | bc1fcd074e37b33824af6dfc357ce96df26405f9 (diff) | |
| download | bcm5719-llvm-e1ce4d7115e1ff9899ad3f6b91f8907bb081906c.tar.gz bcm5719-llvm-e1ce4d7115e1ff9899ad3f6b91f8907bb081906c.zip | |
When folding a load into a return of SSE value, check the chain to
ensure the memory location has not been clobbered.
llvm-svn: 25861
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 1a60368bbb2..dce781d3a8b 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -1912,10 +1912,11 @@ SDOperand X86TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) { Ops.push_back(Op.getOperand(1)); Copy = DAG.getNode(X86ISD::FP_SET_RESULT, Tys, Ops); } else { - SDOperand MemLoc, Chain; + SDOperand MemLoc; + SDOperand Chain = Op.getOperand(0); SDOperand Value = Op.getOperand(1); - if (Value.getOpcode() == ISD::LOAD) { + if (Value.getOpcode() == ISD::LOAD && Chain == Value.getOperand(0)) { Chain = Value.getOperand(0); MemLoc = Value.getOperand(1); } else { |

