diff options
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfDebug.h')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.h | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index 8445b74798..f2aa80845a 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -72,25 +72,21 @@ class DbgVariable { DIVariable Var; // Variable Descriptor. DIE *TheDIE; // Variable DIE. unsigned DotDebugLocOffset; // Offset in DotDebugLocEntries. - DbgVariable *AbsVar; // Corresponding Abstract variable, if any. const MachineInstr *MInsn; // DBG_VALUE instruction of the variable. int FrameIndex; DwarfDebug *DD; public: /// Construct a DbgVariable from a DIVariable. - /// AbstractVar may be NULL. - DbgVariable(DIVariable V, DbgVariable *AbstractVar, DwarfDebug *DD) - : Var(V), TheDIE(nullptr), DotDebugLocOffset(~0U), AbsVar(AbstractVar), - MInsn(nullptr), FrameIndex(~0), DD(DD) {} + DbgVariable(DIVariable V, DwarfDebug *DD) + : Var(V), TheDIE(nullptr), DotDebugLocOffset(~0U), MInsn(nullptr), + FrameIndex(~0), DD(DD) {} /// Construct a DbgVariable from a DEBUG_VALUE. /// AbstractVar may be NULL. - DbgVariable(const MachineInstr *DbgValue, DbgVariable *AbstractVar, - DwarfDebug *DD) - : Var(DbgValue->getDebugVariable()), - TheDIE(nullptr), DotDebugLocOffset(~0U), AbsVar(AbstractVar), - MInsn(DbgValue), FrameIndex(~0), DD(DD) {} + DbgVariable(const MachineInstr *DbgValue, DwarfDebug *DD) + : Var(DbgValue->getDebugVariable()), TheDIE(nullptr), + DotDebugLocOffset(~0U), MInsn(DbgValue), FrameIndex(~0), DD(DD) {} // Accessors. DIVariable getVariable() const { return Var; } @@ -99,7 +95,6 @@ public: void setDotDebugLocOffset(unsigned O) { DotDebugLocOffset = O; } unsigned getDotDebugLocOffset() const { return DotDebugLocOffset; } StringRef getName() const { return Var.getName(); } - DbgVariable *getAbstractVariable() const { return AbsVar; } const MachineInstr *getMInsn() const { return MInsn; } int getFrameIndex() const { return FrameIndex; } void setFrameIndex(int FI) { FrameIndex = FI; } @@ -347,10 +342,11 @@ class DwarfDebug : public AsmPrinterHandler { DbgVariable *getExistingAbstractVariable(const DIVariable &DV, DIVariable &Cleansed); DbgVariable *getExistingAbstractVariable(const DIVariable &DV); - DbgVariable *createAbstractVariable(DIVariable &DV, LexicalScope *Scope); - DbgVariable *getOrCreateAbstractVariable(DIVariable &Var, - const MDNode *Scope); - DbgVariable *findAbstractVariable(DIVariable &Var, const MDNode *Scope); + void createAbstractVariable(const DIVariable &DV, LexicalScope *Scope); + void ensureAbstractVariableIsCreated(const DIVariable &Var, + const MDNode *Scope); + void ensureAbstractVariableIsCreatedIfScoped(const DIVariable &Var, + const MDNode *Scope); /// \brief Find DIE for the given subprogram and attach appropriate /// DW_AT_low_pc and DW_AT_high_pc attributes. If there are global |