summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@hotmail.com>2018-03-01 14:32:37 +0000
committerAlexey Bataev <a.bataev@hotmail.com>2018-03-01 14:32:37 +0000
commitd7c6fdbcd5701c5f17d1fa563b21bca3494b34de (patch)
tree7cb875ec8dbf7a17be2aefd1f148492f906b0450 /llvm/lib
parentb0f051ae63e02f135cf8550deefc3e349c77b546 (diff)
downloadbcm5719-llvm-d7c6fdbcd5701c5f17d1fa563b21bca3494b34de.tar.gz
bcm5719-llvm-d7c6fdbcd5701c5f17d1fa563b21bca3494b34de.zip
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
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp23
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp29
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h9
3 files changed, 11 insertions, 50 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
index 06a5569e95d..713a9763a7f 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
@@ -270,20 +270,15 @@ void DwarfCompileUnit::addRange(RangeSpan Range) {
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::addScopeRangeList(DIE &ScopeDIE,
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::createAbstractVariable(const DILocalVariable *Var,
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 @@ bool DwarfCompileUnit::hasDwarfPubSections() const {
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 3a755306669..2caf9c9ed27 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -123,13 +123,6 @@ DwarfInlinedStrings("dwarf-inlined-strings", cl::Hidden,
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 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
// 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 @@ void DwarfDebug::finalizeModuleInfo() {
// 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 @@ void DwarfDebug::emitDebugPubSection(bool GnuStyle, StringRef Name,
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 @@ void DwarfDebug::emitDebugARanges() {
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 e1de946f6f4..c8a36baffe3 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -258,10 +258,6 @@ class DwarfDebug : public DebugHandlerBase {
/// 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 @@ public:
/// 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
OpenPOWER on IntegriCloud