The "IsSmall" argument to EmitSectionOffset is always true,

constant fold it away.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100356 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2010-04-04 21:34:40 +00:00
parent f88dce1f89
commit 83d1618b46
3 changed files with 13 additions and 18 deletions

View File

@@ -2567,7 +2567,7 @@ void DwarfDebug::emitDebugInfo() {
Asm->EmitInt16(dwarf::DWARF_VERSION); Asm->EmitInt16(dwarf::DWARF_VERSION);
Asm->OutStreamer.AddComment("Offset Into Abbrev. Section"); Asm->OutStreamer.AddComment("Offset Into Abbrev. Section");
EmitSectionOffset(Asm->GetTempSymbol("abbrev_begin"), EmitSectionOffset(Asm->GetTempSymbol("abbrev_begin"),
Asm->GetTempSymbol("section_abbrev"), true); Asm->GetTempSymbol("section_abbrev"));
Asm->OutStreamer.AddComment("Address Size (in bytes)"); Asm->OutStreamer.AddComment("Address Size (in bytes)");
Asm->EmitInt8(TD->getPointerSize()); Asm->EmitInt8(TD->getPointerSize());
@@ -2879,7 +2879,7 @@ emitFunctionDebugFrame(const FunctionDebugFrameInfo &DebugFrameInfo) {
Asm->OutStreamer.AddComment("FDE CIE offset"); Asm->OutStreamer.AddComment("FDE CIE offset");
EmitSectionOffset(Asm->GetTempSymbol("debug_frame_common"), EmitSectionOffset(Asm->GetTempSymbol("debug_frame_common"),
Asm->GetTempSymbol("section_debug_frame"), true); Asm->GetTempSymbol("section_debug_frame"));
Asm->OutStreamer.AddComment("FDE initial location"); Asm->OutStreamer.AddComment("FDE initial location");
MCSymbol *FuncBeginSym = MCSymbol *FuncBeginSym =
@@ -2918,7 +2918,7 @@ void DwarfDebug::emitDebugPubNames() {
Asm->OutStreamer.AddComment("Offset of Compilation Unit Info"); Asm->OutStreamer.AddComment("Offset of Compilation Unit Info");
EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()), EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()),
Asm->GetTempSymbol("section_info"), true); Asm->GetTempSymbol("section_info"));
Asm->OutStreamer.AddComment("Compilation Unit Length"); Asm->OutStreamer.AddComment("Compilation Unit Length");
Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()), Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()),
@@ -2962,7 +2962,7 @@ void DwarfDebug::emitDebugPubTypes() {
Asm->OutStreamer.AddComment("Offset of Compilation ModuleCU Info"); Asm->OutStreamer.AddComment("Offset of Compilation ModuleCU Info");
EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()), EmitSectionOffset(Asm->GetTempSymbol("info_begin", ModuleCU->getID()),
Asm->GetTempSymbol("section_info"), true); Asm->GetTempSymbol("section_info"));
Asm->OutStreamer.AddComment("Compilation ModuleCU Length"); Asm->OutStreamer.AddComment("Compilation ModuleCU Length");
Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()), Asm->EmitLabelDifference(Asm->GetTempSymbol("info_end", ModuleCU->getID()),
@@ -3108,11 +3108,11 @@ void DwarfDebug::emitDebugInlineInfo() {
Asm->OutStreamer.EmitIntValue(0, 1, 0); // nul terminator. Asm->OutStreamer.EmitIntValue(0, 1, 0); // nul terminator.
} else } else
EmitSectionOffset(getStringPoolEntry(getRealLinkageName(LName)), EmitSectionOffset(getStringPoolEntry(getRealLinkageName(LName)),
Asm->GetTempSymbol("section_str"), true); Asm->GetTempSymbol("section_str"));
Asm->OutStreamer.AddComment("Function name"); Asm->OutStreamer.AddComment("Function name");
EmitSectionOffset(getStringPoolEntry(Name), EmitSectionOffset(getStringPoolEntry(Name),
Asm->GetTempSymbol("section_str"), true); Asm->GetTempSymbol("section_str"));
Asm->EmitULEB128(Labels.size(), "Inline count"); Asm->EmitULEB128(Labels.size(), "Inline count");
for (SmallVector<InlineInfoLabels, 4>::iterator LI = Labels.begin(), for (SmallVector<InlineInfoLabels, 4>::iterator LI = Labels.begin(),

View File

@@ -39,20 +39,16 @@ DwarfPrinter::DwarfPrinter(AsmPrinter *A)
void DwarfPrinter::EmitSectionOffset(const MCSymbol *Label, void DwarfPrinter::EmitSectionOffset(const MCSymbol *Label,
const MCSymbol *Section, bool IsSmall) { const MCSymbol *Section) {
bool isAbsolute = MAI->isAbsoluteDebugSectionOffsets(); if (!MAI->isAbsoluteDebugSectionOffsets())
return Asm->EmitLabelDifference(Label, Section, 4);
if (!isAbsolute)
return Asm->EmitLabelDifference(Label, Section,
IsSmall ? 4 : TD->getPointerSize());
// On COFF targets, we have to emit the weird .secrel32 directive. // On COFF targets, we have to emit the weird .secrel32 directive.
if (const char *SecOffDir = MAI->getDwarfSectionOffsetDirective()) { if (const char *SecOffDir = MAI->getDwarfSectionOffsetDirective()) {
// FIXME: MCize. // FIXME: MCize.
Asm->OutStreamer.EmitRawText(SecOffDir + Twine(Label->getName())); Asm->OutStreamer.EmitRawText(SecOffDir + Twine(Label->getName()));
} else { } else {
unsigned Size = IsSmall ? 4 : TD->getPointerSize(); Asm->OutStreamer.EmitSymbolValue(Label, 4, 0/*AddrSpace*/);
Asm->OutStreamer.EmitSymbolValue(Label, Size, 0/*AddrSpace*/);
} }
} }

View File

@@ -74,10 +74,9 @@ public:
const MCAsmInfo *getMCAsmInfo() const { return MAI; } const MCAsmInfo *getMCAsmInfo() const { return MAI; }
const TargetData *getTargetData() const { return TD; } const TargetData *getTargetData() const { return TD; }
/// EmitSectionOffset - Emit Label-Section or use a special purpose directive /// EmitSectionOffset - Emit a 4-byte "Label-Section" value or use a special
/// to emit a section offset if the target has one. /// purpose directive to emit a section offset if the target has one.
void EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section, void EmitSectionOffset(const MCSymbol *Label, const MCSymbol *Section);
bool IsSmall = false);
/// EmitFrameMoves - Emit frame instructions to describe the layout of the /// EmitFrameMoves - Emit frame instructions to describe the layout of the
/// frame. /// frame.