summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/DwarfWriter.h
diff options
context:
space:
mode:
authorJim Laskey <jlaskey@mac.com>2006-04-07 16:34:46 +0000
committerJim Laskey <jlaskey@mac.com>2006-04-07 16:34:46 +0000
commit4188699f80c233a20b6ddc61570a8a8c1804cb85 (patch)
treea711460fdce84b3c1fdd9c1dcce8be21fef48786 /include/llvm/CodeGen/DwarfWriter.h
parent38ab6d887c660c7e2fe08707e8f982ab451fb224 (diff)
downloadllvm-4188699f80c233a20b6ddc61570a8a8c1804cb85.tar.gz
llvm-4188699f80c233a20b6ddc61570a8a8c1804cb85.tar.bz2
llvm-4188699f80c233a20b6ddc61570a8a8c1804cb85.tar.xz
Foundation for call frame information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27491 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/DwarfWriter.h')
-rw-r--r--include/llvm/CodeGen/DwarfWriter.h31
1 files changed, 25 insertions, 6 deletions
diff --git a/include/llvm/CodeGen/DwarfWriter.h b/include/llvm/CodeGen/DwarfWriter.h
index 7ac5aa6ba4..34c69b907d 100644
--- a/include/llvm/CodeGen/DwarfWriter.h
+++ b/include/llvm/CodeGen/DwarfWriter.h
@@ -41,10 +41,13 @@ class DIE;
class DIEAbbrev;
class GlobalVariableDesc;
class MachineDebugInfo;
-class MachineLocation;
class MachineFunction;
+class MachineLocation;
+class MachineMove;
class Module;
+class MRegisterInfo;
class SubprogramDesc;
+class TargetData;
class Type;
class TypeDesc;
@@ -81,6 +84,12 @@ protected:
///
AsmPrinter *Asm;
+ /// TD - Target data.
+ const TargetData &TD;
+
+ /// RI - Register Information.
+ const MRegisterInfo *RI;
+
/// M - Current module.
///
Module *M;
@@ -324,7 +333,8 @@ private:
/// AddAddress - Add an address attribute to a die based on the location
/// provided.
- void AddAddress(DIE *Die, unsigned Attribute, MachineLocation &Location);
+ void AddAddress(DIE *Die, unsigned Attribute,
+ const MachineLocation &Location);
/// NewType - Create a new type DIE.
///
@@ -375,6 +385,11 @@ private:
///
void SizeAndOffsets();
+ /// EmitFrameMoves - Emit frame instructions to describe the layout of the
+ /// frame.
+ void EmitFrameMoves(const char *BaseLabel, unsigned BaseLabelID,
+ std::vector<MachineMove *> &Moves);
+
/// EmitDebugInfo - Emit the debug info section.
///
void EmitDebugInfo() const;
@@ -387,10 +402,14 @@ private:
///
void EmitDebugLines() const;
- /// EmitDebugFrame - Emit info into a debug frame section.
+ /// EmitInitialDebugFrame - Emit common frame info into a debug frame section.
///
- void EmitDebugFrame();
-
+ void EmitInitialDebugFrame();
+
+ /// EmitFunctionDebugFrame - Emit per function frame info into a debug frame
+ /// section.
+ void EmitFunctionDebugFrame();
+
/// EmitDebugPubNames - Emit info into a debug pubnames section.
///
void EmitDebugPubNames();
@@ -439,7 +458,7 @@ public:
/// SetDebugInfo - Set DebugInfo when it's known that pass manager has
/// created it. Set by the target AsmPrinter.
- void SetDebugInfo(MachineDebugInfo *DI) { DebugInfo = DI; }
+ void SetDebugInfo(MachineDebugInfo *DI);
//===--------------------------------------------------------------------===//
// Main entry points.