diff options
| author | Bill Wendling <isanbard@gmail.com> | 2009-05-18 22:02:36 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2009-05-18 22:02:36 +0000 |
| commit | 6679ee4e805f606264ed4e03449b957c9212cfb6 (patch) | |
| tree | 4287a9d26a8541434b4f733a18bceee29ba4f43e /lib/CodeGen/AsmPrinter/DwarfDebug.h | |
| parent | 94c9cd17de1a21fbc69969f66a8b1af145d55c0c (diff) | |
| download | external_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.h | 9 |
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. /// |
