From f3f78583f97e3a638f556f2dd929bfd678a1cc22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Sj=C3=B6din?= Date: Fri, 11 Mar 2011 19:37:02 +0000 Subject: [PATCH] Remove optimization emitting a reference insted of label difference, since it can create more relocations. Removed isBaseAddressKnownZero method, because it is no longer used. llvm-svn: 127478 --- llvm/include/llvm/MC/MCSection.h | 8 -------- llvm/include/llvm/MC/MCSectionELF.h | 6 ------ llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp | 7 ------- 3 files changed, 21 deletions(-) diff --git a/llvm/include/llvm/MC/MCSection.h b/llvm/include/llvm/MC/MCSection.h index 1c01b2f8f3cc..b64a44cdd0a1 100644 --- a/llvm/include/llvm/MC/MCSection.h +++ b/llvm/include/llvm/MC/MCSection.h @@ -52,14 +52,6 @@ namespace llvm { virtual void PrintSwitchToSection(const MCAsmInfo &MAI, raw_ostream &OS) const = 0; - /// isBaseAddressKnownZero - Return true if we know that this section will - /// get a base address of zero. In cases where we know that this is true we - /// can emit section offsets as direct references to avoid a subtraction - /// from the base of the section, saving a relocation. - virtual bool isBaseAddressKnownZero() const { - return false; - } - // UseCodeAlign - Return true if a .align directive should use // "optimized nops" to fill instead of 0s. virtual bool UseCodeAlign() const = 0; diff --git a/llvm/include/llvm/MC/MCSectionELF.h b/llvm/include/llvm/MC/MCSectionELF.h index c82de7128202..26951725e497 100644 --- a/llvm/include/llvm/MC/MCSectionELF.h +++ b/llvm/include/llvm/MC/MCSectionELF.h @@ -66,12 +66,6 @@ public: virtual bool UseCodeAlign() const; virtual bool isVirtualSection() const; - /// isBaseAddressKnownZero - We know that non-allocatable sections (like - /// debug info) have a base of zero. - virtual bool isBaseAddressKnownZero() const { - return (getFlags() & ELF::SHF_ALLOC) == 0; - } - static bool classof(const MCSection *S) { return S->getVariant() == SV_ELF; } diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp index 98a1bf2f1ce4..68e80e3983a4 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp @@ -191,13 +191,6 @@ void AsmPrinter::EmitSectionOffset(const MCSymbol *Label, assert((!Label->isInSection() || &Label->getSection() == &Section) && "Section offset using wrong section base for label"); - // If the section in question will end up with an address of 0 anyway, we can - // just emit an absolute reference to save a relocation. - if (Section.isBaseAddressKnownZero()) { - OutStreamer.EmitSymbolValue(Label, 4, 0/*AddrSpace*/); - return; - } - // Otherwise, emit it as a label difference from the start of the section. EmitLabelDifference(Label, SectionLabel, 4); }