diff options
author | Devang Patel <dpatel@apple.com> | 2010-08-31 18:50:09 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-08-31 18:50:09 +0000 |
commit | 8480c2e314f6c01638ea16f32149417848352085 (patch) | |
tree | c65328cb1b461ce865bb8082ee75c663a338b348 /include/llvm/CodeGen | |
parent | d4511e947ee1e89a4f199bfac0d401976930ccfe (diff) | |
download | llvm-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.h | 10 |
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 |