summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-08-31 18:50:09 +0000
committerDevang Patel <dpatel@apple.com>2010-08-31 18:50:09 +0000
commit8480c2e314f6c01638ea16f32149417848352085 (patch)
treec65328cb1b461ce865bb8082ee75c663a338b348 /include/llvm/CodeGen
parentd4511e947ee1e89a4f199bfac0d401976930ccfe (diff)
downloadllvm-8480c2e314f6c01638ea16f32149417848352085.tar.gz
llvm-8480c2e314f6c01638ea16f32149417848352085.tar.bz2
llvm-8480c2e314f6c01638ea16f32149417848352085.tar.xz
Remember byval argument's frame index during argument lowering and use this info to emit debug info.
Fixes Radar 8367011. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112623 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-rw-r--r--include/llvm/CodeGen/FunctionLoweringInfo.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/FunctionLoweringInfo.h b/include/llvm/CodeGen/FunctionLoweringInfo.h
index c49d1edb20..f17fe5a146 100644
--- a/include/llvm/CodeGen/FunctionLoweringInfo.h
+++ b/include/llvm/CodeGen/FunctionLoweringInfo.h
@@ -77,6 +77,9 @@ public:
/// anywhere in the function.
DenseMap<const AllocaInst*, int> StaticAllocaMap;
+ /// ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.
+ DenseMap<const Argument*, int> ByValArgFrameIndexMap;
+
/// ArgDbgValues - A list of DBG_VALUE instructions created during isel for
/// function arguments that are inserted after scheduling is completed.
SmallVector<MachineInstr*, 8> ArgDbgValues;
@@ -138,6 +141,13 @@ public:
assert(R == 0 && "Already initialized this value register!");
return R = CreateRegs(V->getType());
}
+
+ /// setByValArgumentFrameIndex - Record frame index for the byval
+ /// argument.
+ void setByValArgumentFrameIndex(const Argument *A, int FI);
+
+ /// getByValArgumentFrameIndex - Get frame index for the byval argument.
+ int getByValArgumentFrameIndex(const Argument *A);
};
/// AddCatchInfo - Extract the personality and type infos from an eh.selector