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
This commit is contained in:
Jan Sjödin 2011-03-11 19:37:02 +00:00
parent 94ccb27b43
commit f3f78583f9
3 changed files with 0 additions and 21 deletions

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}