summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-01-24 11:52:53 +0000
committerEric Christopher <echristo@gmail.com>2014-01-24 11:52:53 +0000
commitcf48ade87e64d2cba4d1376a7e53b585ab1ecb14 (patch)
treecd0a2cb26457e98cf2fcc9158c8c19be452a519b /llvm/lib/CodeGen/AsmPrinter
parentc528858cbd4fef01f2007cea8a4e8e25a6b86443 (diff)
downloadbcm5719-llvm-cf48ade87e64d2cba4d1376a7e53b585ab1ecb14.tar.gz
bcm5719-llvm-cf48ade87e64d2cba4d1376a7e53b585ab1ecb14.zip
Revert "Use DW_AT_high_pc and DW_AT_low_pc for the high and low pc for a"
in order to fix the cygwin/mingw bots. This reverts commit r199990. llvm-svn: 199991
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp16
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h1
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp33
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h5
4 files changed, 14 insertions, 41 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 077af8c3756..7ba4fece43b 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -187,7 +187,6 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
DwarfAddrSectionSym = 0;
DwarfAbbrevDWOSectionSym = DwarfStrDWOSectionSym = 0;
FunctionBeginSym = FunctionEndSym = 0;
- TextSectionBeginSym = TextSectionEndSym = 0;
CurFn = 0;
CurMI = 0;
@@ -1062,12 +1061,9 @@ void DwarfDebug::finalizeModuleInfo() {
addSectionLabel(Asm, U, U->getUnitDie(), dwarf::DW_AT_ranges,
Asm->GetTempSymbol("cu_ranges", U->getUniqueID()),
DwarfDebugRangeSectionSym);
- else {
- U->addLocalLabelAddress(U->getUnitDie(), dwarf::DW_AT_low_pc,
- TextSectionBeginSym);
- U->addLocalLabelAddress(U->getUnitDie(), dwarf::DW_AT_high_pc,
- TextSectionEndSym);
- }
+ else
+ U->addUInt(U->getUnitDie(), dwarf::DW_AT_low_pc, dwarf::DW_FORM_addr,
+ 0);
}
}
@@ -1121,10 +1117,6 @@ void DwarfDebug::endSections() {
Sym = Asm->GetTempSymbol("debug_end", ID);
Asm->OutStreamer.SwitchSection(Section);
Asm->OutStreamer.EmitLabel(Sym);
- // If this is the end of the text section keep track of where the end of
- // the section is so that we can use it later.
- if (Section == Asm->getObjFileLowering().getTextSection())
- TextSectionEndSym = Sym;
}
// Insert a final terminator.
@@ -2020,8 +2012,6 @@ void DwarfDebug::emitSectionLabels() {
DwarfDebugLocSectionSym =
emitSectionSym(Asm, TLOF.getDwarfLocSection(), "section_debug_loc");
-
- TextSectionBeginSym = emitSectionSym(Asm, TLOF.getTextSection(), "text_begin");
}
// Recursively emits a debug information entry.
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
index 1071e5892ac..516def804d1 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
@@ -432,7 +432,6 @@ class DwarfDebug : public AsmPrinterHandler {
MCSymbol *DwarfInfoDWOSectionSym, *DwarfAbbrevDWOSectionSym;
MCSymbol *DwarfStrDWOSectionSym;
MCSymbol *DwarfGnuPubNamesSectionSym, *DwarfGnuPubTypesSectionSym;
- MCSymbol *TextSectionBeginSym, *TextSectionEndSym;
// As an optimization, there is no need to emit an entry in the directory
// table for the same directory as DW_AT_comp_dir.
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index e9b10ba2911..4f55d89ce2c 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -266,32 +266,21 @@ void DwarfUnit::addSectionOffset(DIE *Die, dwarf::Attribute Attribute,
///
void DwarfCompileUnit::addLabelAddress(DIE *Die, dwarf::Attribute Attribute,
MCSymbol *Label) {
- if (!DD->useSplitDwarf())
- return addLocalLabelAddress(Die, Attribute, Label);
-
- if (Label)
- DD->addArangeLabel(SymbolCU(this, Label));
-
- unsigned idx = DU->getAddrPoolIndex(Label);
- DIEValue *Value = new (DIEValueAllocator) DIEInteger(idx);
- Die->addValue(Attribute, dwarf::DW_FORM_GNU_addr_index, Value);
-}
-
-/// addLocalLabelAddress - Add a dwarf label attribute data and value using
-/// DW_FORM_addr only.
-///
-void DwarfCompileUnit::addLocalLabelAddress(DIE *Die,
- dwarf::Attribute Attribute,
- MCSymbol *Label) {
if (Label)
DD->addArangeLabel(SymbolCU(this, Label));
- if (Label) {
- DIEValue *Value = new (DIEValueAllocator) DIELabel(Label);
- Die->addValue(Attribute, dwarf::DW_FORM_addr, Value);
+ if (!DD->useSplitDwarf()) {
+ if (Label) {
+ DIEValue *Value = new (DIEValueAllocator) DIELabel(Label);
+ Die->addValue(Attribute, dwarf::DW_FORM_addr, Value);
+ } else {
+ DIEValue *Value = new (DIEValueAllocator) DIEInteger(0);
+ Die->addValue(Attribute, dwarf::DW_FORM_addr, Value);
+ }
} else {
- DIEValue *Value = new (DIEValueAllocator) DIEInteger(0);
- Die->addValue(Attribute, dwarf::DW_FORM_addr, Value);
+ unsigned idx = DU->getAddrPoolIndex(Label);
+ DIEValue *Value = new (DIEValueAllocator) DIEInteger(idx);
+ Die->addValue(Attribute, dwarf::DW_FORM_GNU_addr_index, Value);
}
}
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
index 684c46b624e..3f42e2f6728 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
@@ -545,11 +545,6 @@ public:
/// addLabelAddress - Add a dwarf label attribute data and value using
/// either DW_FORM_addr or DW_FORM_GNU_addr_index.
void addLabelAddress(DIE *Die, dwarf::Attribute Attribute, MCSymbol *Label);
-
- /// addLocalLabelAddress - Add a dwarf label attribute data and value using
- /// DW_FORM_addr only.
- void addLocalLabelAddress(DIE *Die, dwarf::Attribute Attribute,
- MCSymbol *Label);
};
class DwarfTypeUnit : public DwarfUnit {
OpenPOWER on IntegriCloud