From b62e1e296efc4235e3f3c4d5ea981b08a8301a7f Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 21 Jan 2005 19:46:38 +0000 Subject: [PATCH] Fix a FIXME: realize that argument stores are all independent (don't alias) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19728 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86ISelPattern.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/Target/X86/X86ISelPattern.cpp b/lib/Target/X86/X86ISelPattern.cpp index 2219291905b..8f118f2f39b 100644 --- a/lib/Target/X86/X86ISelPattern.cpp +++ b/lib/Target/X86/X86ISelPattern.cpp @@ -196,6 +196,8 @@ X86TargetLowering::LowerCallTo(SDOperand Chain, unsigned ArgOffset = 0; SDOperand StackPtr = DAG.getCopyFromReg(X86::ESP, MVT::i32, DAG.getEntryNode()); + std::vector Stores; + for (unsigned i = 0, e = Args.size(); i != e; ++i) { unsigned ArgReg; SDOperand PtrOff = DAG.getConstant(ArgOffset, getPointerTy()); @@ -216,20 +218,19 @@ X86TargetLowering::LowerCallTo(SDOperand Chain, // FALL THROUGH case MVT::i32: case MVT::f32: - // FIXME: Note that all of these stores are independent of each other. - Chain = DAG.getNode(ISD::STORE, MVT::Other, Chain, - Args[i].first, PtrOff); + Stores.push_back(DAG.getNode(ISD::STORE, MVT::Other, Chain, + Args[i].first, PtrOff)); ArgOffset += 4; break; case MVT::i64: case MVT::f64: - // FIXME: Note that all of these stores are independent of each other. - Chain = DAG.getNode(ISD::STORE, MVT::Other, Chain, - Args[i].first, PtrOff); + Stores.push_back(DAG.getNode(ISD::STORE, MVT::Other, Chain, + Args[i].first, PtrOff)); ArgOffset += 8; break; } } + Chain = DAG.getNode(ISD::TokenFactor, MVT::Other, Stores); } std::vector RetVals; -- 2.34.1