aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/AsmPrinter/DwarfDebug.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-05-18 22:02:36 +0000
committerBill Wendling <isanbard@gmail.com>2009-05-18 22:02:36 +0000
commit6679ee4e805f606264ed4e03449b957c9212cfb6 (patch)
tree4287a9d26a8541434b4f733a18bceee29ba4f43e /lib/CodeGen/AsmPrinter/DwarfDebug.h
parent94c9cd17de1a21fbc69969f66a8b1af145d55c0c (diff)
downloadexternal_llvm-6679ee4e805f606264ed4e03449b957c9212cfb6.zip
external_llvm-6679ee4e805f606264ed4e03449b957c9212cfb6.tar.gz
external_llvm-6679ee4e805f606264ed4e03449b957c9212cfb6.tar.bz2
RecordVariable is called each time a DECLARE node is encountered. For an inlined
function, this could be many, many times. We don't want to re-add variables to that DIE for each time. We just want to add them once. Check to make sure that we haven't added them already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72047 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfDebug.h')
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfDebug.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h
index 18afbda..a997199 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -22,6 +22,7 @@
#include "llvm/Support/raw_ostream.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/FoldingSet.h"
+#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/UniqueVector.h"
#include <string>
@@ -163,6 +164,11 @@ class VISIBILITY_HIDDEN DwarfDebug : public Dwarf {
/// attribute.
DenseMap<const GlobalVariable *, DbgScope *> AbstractInstanceRootMap;
+ /// InlinedParamMap - A map keeping track of which parameters are assigned to
+ /// which abstract instance.
+ DenseMap<const GlobalVariable *,
+ SmallSet<const GlobalVariable *, 32> > InlinedParamMap;
+
/// AbstractInstanceRootList - List of abstract instance roots of inlined
/// functions. These are subroutine entries that contain a DW_AT_inline
/// attribute.
@@ -333,7 +339,8 @@ class VISIBILITY_HIDDEN DwarfDebug : public Dwarf {
/// CreateSubprogramDIE - Create new DIE using SP.
DIE *CreateSubprogramDIE(CompileUnit *DW_Unit,
const DISubprogram &SP,
- bool IsConstructor = false);
+ bool IsConstructor = false,
+ bool IsInlined = false);
/// FindCompileUnit - Get the compile unit for the given descriptor.
///