From: Adrian Prantl Date: Wed, 14 Jan 2015 01:01:22 +0000 (+0000) Subject: Debug Info: Move DIEDwarfExpression into DwarfExpression.h because it X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=e733e5461f53c203fc985057f501d54b80f887af;p=oota-llvm.git Debug Info: Move DIEDwarfExpression into DwarfExpression.h because it needs to be accessed from both DwarfCompileUnit.cpp and DwarfUnit.cpp. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225898 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/AsmPrinter/DwarfExpression.h b/lib/CodeGen/AsmPrinter/DwarfExpression.h index f164f1c8513..4df958c5a03 100644 --- a/lib/CodeGen/AsmPrinter/DwarfExpression.h +++ b/lib/CodeGen/AsmPrinter/DwarfExpression.h @@ -22,6 +22,8 @@ namespace llvm { class AsmPrinter; class ByteStreamer; class TargetRegisterInfo; +class DwarfUnit; +class DIELoc; /// Base class containing the logic for constructing DWARF expressions /// independently of whether they are emitted into a DIE or into a .debug_loc @@ -108,6 +110,21 @@ public: void EmitUnsigned(unsigned Value) override; bool isFrameRegister(unsigned MachineReg) override; }; + +/// DwarfExpression implementation for singular DW_AT_location. +class DIEDwarfExpression : public DwarfExpression { + DwarfUnit &DU; + DIELoc ¨ + +public: + DIEDwarfExpression(const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE) + : DwarfExpression(AP), DU(DU), DIE(DIE) {} + + void EmitOp(uint8_t Op, const char *Comment = nullptr) override; + void EmitSigned(int Value) override; + void EmitUnsigned(unsigned Value) override; + bool isFrameRegister(unsigned MachineReg) override; +}; } #endif diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index 7b32831c77f..2f2d9c6b54e 100644 --- a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -44,20 +44,6 @@ GenerateDwarfTypeUnits("generate-type-units", cl::Hidden, cl::desc("Generate DWARF4 type units."), cl::init(false)); -/// DwarfExpression implementation for DwarfUnit. -class DIEDwarfExpression : public DwarfExpression { - DwarfUnit &DU; - DIELoc ¨ -public: - DIEDwarfExpression(const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE) - : DwarfExpression(AP), DU(DU), DIE(DIE) {} - - void EmitOp(uint8_t Op, const char* Comment = nullptr) override; - void EmitSigned(int Value) override; - void EmitUnsigned(unsigned Value) override; - bool isFrameRegister(unsigned MachineReg) override; -}; - void DIEDwarfExpression::EmitOp(uint8_t Op, const char* Comment) { DU.addUInt(DIE, dwarf::DW_FORM_data1, Op); }