Sink dwarf unit length emission down into DwarfUnit::emitHeader
authorDavid Blaikie <dblaikie@gmail.com>
Sat, 1 Nov 2014 23:59:23 +0000 (23:59 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Sat, 1 Nov 2014 23:59:23 +0000 (23:59 +0000)
This allows the CU label to be emitted only for compile units, as
they're the only ones that need it (so they can be referenced from
pubnames)

llvm-svn: 221072

llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp

index d214e36..885be61 100644 (file)
@@ -686,4 +686,12 @@ void DwarfCompileUnit::collectDeadVariables(DISubprogram SP) {
   }
 }
 
+void DwarfCompileUnit::emitHeader(const MCSymbol *ASectionSym) const {
+  // Emit the compile units header.
+  Asm->OutStreamer.EmitLabel(LabelBegin);
+
+  DwarfUnit::emitHeader(ASectionSym);
+}
+
+
 } // end llvm namespace
index a84c81e..def0cf7 100644 (file)
@@ -177,6 +177,8 @@ public:
     return sizeof(uint32_t) + // Length field
         getHeaderSize() + UnitDie.getSize();
   }
+
+  void emitHeader(const MCSymbol *ASectionSym) const override;
 };
 
 } // end llvm namespace
index 89d38a2..50180ea 100644 (file)
@@ -55,13 +55,6 @@ void DwarfFile::emitUnits(const MCSymbol *ASectionSym) {
     const MCSection *USection = TheU->getSection();
     Asm->OutStreamer.SwitchSection(USection);
 
-    // Emit the compile units header.
-    Asm->OutStreamer.EmitLabel(TheU->getLabelBegin());
-
-    // Emit size of content not including length itself
-    Asm->OutStreamer.AddComment("Length of Unit");
-    Asm->EmitInt32(TheU->getHeaderSize() + Die.getSize());
-
     TheU->emitHeader(ASectionSym);
 
     DD.emitDIE(Die);
index bdcb8cc..2086c8d 100644 (file)
@@ -1730,6 +1730,10 @@ DIE *DwarfUnit::getOrCreateStaticMemberDIE(DIDerivedType DT) {
 }
 
 void DwarfUnit::emitHeader(const MCSymbol *ASectionSym) const {
+  // Emit size of content not including length itself
+  Asm->OutStreamer.AddComment("Length of Unit");
+  Asm->EmitInt32(getHeaderSize() + UnitDie.getSize());
+
   Asm->OutStreamer.AddComment("DWARF version number");
   Asm->EmitInt16(DD->getDwarfVersion());
   Asm->OutStreamer.AddComment("Offset Into Abbrev. Section");