aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-04-15 00:10:26 +0000
committerDevang Patel <dpatel@apple.com>2009-04-15 00:10:26 +0000
commit1be3eccecbd2fa50ed9008ffee01f6351df5d8f7 (patch)
treec27337a942e36a3dd2d628d2e1779ca0b21ba294 /include
parentaaa1fdb271073893699f3af57f5439dae35a8f59 (diff)
downloadexternal_llvm-1be3eccecbd2fa50ed9008ffee01f6351df5d8f7.zip
external_llvm-1be3eccecbd2fa50ed9008ffee01f6351df5d8f7.tar.gz
external_llvm-1be3eccecbd2fa50ed9008ffee01f6351df5d8f7.tar.bz2
Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69116 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/DwarfWriter.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/include/llvm/CodeGen/DwarfWriter.h b/include/llvm/CodeGen/DwarfWriter.h
index 9b9e21c..4b35b28 100644
--- a/include/llvm/CodeGen/DwarfWriter.h
+++ b/include/llvm/CodeGen/DwarfWriter.h
@@ -29,11 +29,15 @@ class DwarfDebug;
class DwarfException;
class MachineModuleInfo;
class MachineFunction;
+class MachineInstr;
class Value;
class Module;
class GlobalVariable;
class TargetAsmInfo;
class raw_ostream;
+class Instruction;
+class DISubprogram;
+class DIVariable;
//===----------------------------------------------------------------------===//
// DwarfWriter - Emits Dwarf debug and exception handling directives.
@@ -94,9 +98,6 @@ public:
/// RecordRegionStart - Indicate the start of a region.
unsigned RecordRegionStart(GlobalVariable *V);
- /// RecordRegionStart - Indicate the start of a region.
- unsigned RecordRegionStart(GlobalVariable *V, unsigned ID);
-
/// RecordRegionEnd - Indicate the end of a region.
unsigned RecordRegionEnd(GlobalVariable *V);
@@ -105,15 +106,23 @@ public:
/// RecordVariable - Indicate the declaration of a local variable.
///
- void RecordVariable(GlobalVariable *GV, unsigned FrameIndex);
+ void RecordVariable(GlobalVariable *GV, unsigned FrameIndex,
+ const MachineInstr *MI);
/// ShouldEmitDwarfDebug - Returns true if Dwarf debugging declarations should
/// be emitted.
bool ShouldEmitDwarfDebug() const;
- //// RecordInlineInfo - Global variable GV is inlined at the location marked
- //// by LabelID label.
- void RecordInlineInfo(GlobalVariable *GV, unsigned LabelID);
+ //// RecordInlinedFnStart - Indicate the start of a inlined function.
+ void RecordInlinedFnStart(Instruction *I, DISubprogram &SP, unsigned LabelID,
+ unsigned Src, unsigned Line, unsigned Col);
+
+ /// RecordInlinedFnEnd - Indicate the end of inlined subroutine.
+ unsigned RecordInlinedFnEnd(DISubprogram &SP);
+
+ /// RecordVariableScope - Record scope for the variable declared by
+ /// DeclareMI. DeclareMI must describe TargetInstrInfo::DECLARE.
+ void RecordVariableScope(DIVariable &DV, const MachineInstr *DeclareMI);
};