diff options
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h | 29 | 
1 files changed, 25 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h index ea980dfda17..bf643c01007 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h @@ -227,12 +227,33 @@ public:    void constructAbstractSubprogramScopeDIE(LexicalScope *Scope); +  /// This takes the official DWARF 5 tag and returns the appropriate +  /// GNU tag if needed. +  dwarf::Tag getDwarf5OrGNUCallSiteTag(dwarf::Tag Tag) const; +  /// This takes the official DWARF 5 attribute and returns the appropriate +  /// GNU attribute if needed. +  dwarf::Attribute getDwarf5OrGNUCallSiteAttr(dwarf::Attribute Attr) const; +    /// Construct a call site entry DIE describing a call within \p Scope to a -  /// callee described by \p CalleeSP. \p IsTail specifies whether the call is -  /// a tail call. \p PCOffset must be non-zero for non-tail calls or be the +  /// callee described by \p CalleeSP. +  /// \p IsTail specifies whether the call is a tail call. +  /// \p PCAddr (used for GDB + DWARF 4 tuning) points to the PC value after +  /// the call instruction. +  /// \p PCOffset (used for cases other than GDB + DWARF 4 tuning) must be +  /// non-zero for non-tail calls (in the case of non-gdb tuning, since for +  /// GDB + DWARF 5 tuning we still generate PC info for tail calls) or be the    /// function-local offset to PC value after the call instruction. -  DIE &constructCallSiteEntryDIE(DIE &ScopeDIE, const DISubprogram &CalleeSP, -                                 bool IsTail, const MCExpr *PCOffset); +  /// \p CallReg is a register location for an indirect call. For direct calls +  /// the \p CallReg is set to 0. +  DIE &constructCallSiteEntryDIE(DIE &ScopeDIE, const DISubprogram *CalleeSP, +                                 bool IsTail, const MCSymbol *PCAddr, +                                 const MCExpr *PCOffset, unsigned CallReg); +  /// Construct call site parameter DIEs for the \p CallSiteDIE. The \p Params +  /// were collected by the \ref collectCallSiteParameters. +  /// Note: The order of parameters does not matter, since debuggers recognize +  ///       call site parameters by the DW_AT_location attribute. +  void constructCallSiteParmEntryDIEs(DIE &CallSiteDIE, +                                      SmallVector<DbgCallSiteParam, 4> &Params);    /// Construct import_module DIE.    DIE *constructImportedEntityDIE(const DIImportedEntity *Module);  | 

