From 9c93059aa403ebc9e6c1a9e111b5eb38ee89d5fc Mon Sep 17 00:00:00 2001 From: Adrian Prantl Date: Thu, 16 May 2013 23:44:12 +0000 Subject: Generate debug info for by-value struct args even if they are not used. radar://problem/13865940 llvm-svn: 182062 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'llvm/lib/CodeGen') diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 2ded723ca0f..7072def6285 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -6753,9 +6753,15 @@ void SelectionDAGISel::LowerArguments(const Function &F) { // If this argument is unused then remember its value. It is used to generate // debugging information. - if (I->use_empty() && NumValues) + if (I->use_empty() && NumValues) { SDB->setUnusedArgValue(I, InVals[i]); + // Also remember any frame index for use in FastISel. + if (FrameIndexSDNode *FI = + dyn_cast(InVals[i].getNode())) + FuncInfo->setArgumentFrameIndex(I, FI->getIndex()); + } + for (unsigned Val = 0; Val != NumValues; ++Val) { EVT VT = ValueVTs[Val]; MVT PartVT = TLI.getRegisterType(*CurDAG->getContext(), VT); -- cgit v1.2.3