Revert "[DEBUGINFO] Add flag for DWARF2 or less to use sections as references."

This reverts commit r326328 to remove checks for emission of certain
sections after discussion with Eric Christofer.

llvm-svn: 326436
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
index 06a5569..713a976 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
@@ -270,20 +270,15 @@
 
 void DwarfCompileUnit::initStmtList() {
   // Define start line table label for each Compile Unit.
-  MCSymbol *LineTableStartSym;
-  const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
-  if (DD->useSectionsAsReferences()) {
-    LineTableStartSym = TLOF.getDwarfLineSection()->getBeginSymbol();
-  } else {
-    LineTableStartSym =
-        Asm->OutStreamer->getDwarfLineTableSymbol(getUniqueID());
-  }
+  MCSymbol *LineTableStartSym =
+      Asm->OutStreamer->getDwarfLineTableSymbol(getUniqueID());
 
   // DW_AT_stmt_list is a offset of line number information for this
   // compile unit in debug_line section. For split dwarf this is
   // left in the skeleton CU and so not included.
   // The line table entries are not always emitted in assembly, so it
   // is not okay to use line_table_start here.
+  const TargetLoweringObjectFile &TLOF = Asm->getObjFileLowering();
   StmtListValue =
       addSectionLabel(getUnitDie(), dwarf::DW_AT_stmt_list, LineTableStartSym,
                       TLOF.getDwarfLineSection()->getBeginSymbol());
@@ -415,10 +410,9 @@
 
 void DwarfCompileUnit::attachRangesOrLowHighPC(
     DIE &Die, SmallVector<RangeSpan, 2> Ranges) {
-  if (Ranges.size() == 1 || DD->useSectionsAsReferences()) {
-    const auto &front = Ranges.front();
-    const auto &back = Ranges.back();
-    attachLowHighPC(Die, front.getStart(), back.getEnd());
+  if (Ranges.size() == 1) {
+    const auto &single = Ranges.front();
+    attachLowHighPC(Die, single.getStart(), single.getEnd());
   } else
     addScopeRangeList(Die, std::move(Ranges));
 }
@@ -840,7 +834,7 @@
 
 void DwarfCompileUnit::emitHeader(bool UseOffsets) {
   // Don't bother labeling the .dwo unit, as its offset isn't used.
-  if (!Skeleton && !DD->useSectionsAsReferences()) {
+  if (!Skeleton) {
     LabelBegin = Asm->createTempSymbol("cu_begin");
     Asm->OutStreamer->EmitLabel(LabelBegin);
   }
@@ -857,8 +851,7 @@
   if (CUNode->getGnuPubnames())
     return true;
 
-  return DD->tuneForGDB() && !includeMinimalInlineScopes() &&
-         !DD->useSectionsAsReferences();
+  return DD->tuneForGDB() && !includeMinimalInlineScopes();
 }
 
 /// addGlobalName - Add a new global name to the compile unit.
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 3a75530..2caf9c9 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -123,13 +123,6 @@
                             clEnumVal(Disable, "Disabled")),
                  cl::init(Default));
 
-static cl::opt<DefaultOnOff> DwarfSectionsAsReferences(
-    "dwarf-sections-as-references", cl::Hidden,
-    cl::desc("Use sections+offset as references rather than labels."),
-    cl::values(clEnumVal(Default, "Default for platform"),
-               clEnumVal(Enable, "Enabled"), clEnumVal(Disable, "Disabled")),
-    cl::init(Default));
-
 enum LinkageNameOption {
   DefaultLinkageNames,
   AllLinkageNames,
@@ -317,10 +310,6 @@
   // Use dwarf 4 by default if nothing is requested.
   DwarfVersion = DwarfVersion ? DwarfVersion : dwarf::DWARF_VERSION;
 
-  // Use sections as references in DWARF v2.
-  UseSectionsAsReferences =
-      DwarfVersion == 2 && DwarfSectionsAsReferences == Enable;
-
   // Work around a GDB bug. GDB doesn't support the standard opcode;
   // SCE doesn't support GNU's; LLDB prefers the standard opcode, which
   // is defined as of DWARF 3.
@@ -748,7 +737,7 @@
     // ranges for all subprogram DIEs for mach-o.
     DwarfCompileUnit &U = SkCU ? *SkCU : TheCU;
     if (unsigned NumRanges = TheCU.getRanges().size()) {
-      if (NumRanges > 1 && !useSectionsAsReferences())
+      if (NumRanges > 1)
         // A DW_AT_low_pc attribute may also be specified in combination with
         // DW_AT_ranges to specify the default base address for use in
         // location lists (see Section 2.6.2) and range lists (see Section
@@ -1576,13 +1565,7 @@
   Asm->EmitInt16(dwarf::DW_PUBNAMES_VERSION);
 
   Asm->OutStreamer->AddComment("Offset of Compilation Unit Info");
-  if (useSectionsAsReferences()) {
-    Asm->EmitLabelPlusOffset(TheU->getSection()->getBeginSymbol(),
-                             TheU->getDebugSectionOffset(),
-                             Asm->MAI->getCodePointerSize());
-  } else {
-    Asm->emitDwarfSymbolReference(TheU->getLabelBegin());
-  }
+  Asm->emitDwarfSymbolReference(TheU->getLabelBegin());
 
   Asm->OutStreamer->AddComment("Compilation Unit Length");
   Asm->EmitInt32(TheU->getLength());
@@ -1881,13 +1864,7 @@
     Asm->OutStreamer->AddComment("DWARF Arange version number");
     Asm->EmitInt16(dwarf::DW_ARANGES_VERSION);
     Asm->OutStreamer->AddComment("Offset Into Debug Info Section");
-    if (useSectionsAsReferences()) {
-      Asm->EmitLabelPlusOffset(CU->getSection()->getBeginSymbol(),
-                               CU->getDebugSectionOffset(),
-                               Asm->MAI->getCodePointerSize());
-    } else {
-      Asm->emitDwarfSymbolReference(CU->getLabelBegin());
-    }
+    Asm->emitDwarfSymbolReference(CU->getLabelBegin());
     Asm->OutStreamer->AddComment("Address Size (in bytes)");
     Asm->EmitInt8(PtrSize);
     Asm->OutStreamer->AddComment("Segment Size (in bytes)");
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
index e1de946..c8a36ba 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -258,10 +258,6 @@
   /// Use inlined strings.
   bool UseInlineStrings = false;
 
-  /// True if the sections itself must be used as references and don't create
-  /// temp symbols inside DWARF sections.
-  bool UseSectionsAsReferences = false;
-
   /// DWARF5 Experimental Options
   /// @{
   bool HasDwarfAccelTables;
@@ -505,11 +501,6 @@
   /// Returns whether to use inline strings.
   bool useInlineStrings() const { return UseInlineStrings; }
 
-  /// Returns whether to use sections as labels rather than temp symbols.
-  bool useSectionsAsReferences() const {
-    return UseSectionsAsReferences;
-  }
-
   // Experimental DWARF5 features.
 
   /// Returns whether or not to emit tables that dwarf consumers can