mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 00:11:00 +00:00
Remove incredibly confusing isBaseAddressKnownZero.
When referring to a symbol in a dwarf section on ELF we should use .long foo instead of .long foo - .debug_something because ELF is unaware of the content of the sections and therefore needs relocations. This has nothing to do with optimizing a -0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231751 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
44292e80ac
commit
774ad7aeb3
@ -52,14 +52,6 @@ namespace llvm {
|
||||
raw_ostream &OS,
|
||||
const MCExpr *Subsection) 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;
|
||||
|
@ -75,12 +75,6 @@ public:
|
||||
bool UseCodeAlign() const override;
|
||||
bool isVirtualSection() const override;
|
||||
|
||||
/// isBaseAddressKnownZero - We know that non-allocatable sections (like
|
||||
/// debug info) have a base of zero.
|
||||
bool isBaseAddressKnownZero() const override {
|
||||
return (getFlags() & ELF::SHF_ALLOC) == 0;
|
||||
}
|
||||
|
||||
static bool classof(const MCSection *S) {
|
||||
return S->getVariant() == SV_ELF;
|
||||
}
|
||||
|
@ -179,9 +179,8 @@ 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()) {
|
||||
// If the format uses relocations with dwarf, refer to the symbol directly.
|
||||
if (MAI->doesDwarfUseRelocationsAcrossSections()) {
|
||||
OutStreamer.EmitSymbolValue(Label, 4);
|
||||
return;
|
||||
}
|
||||
|
@ -36,7 +36,6 @@ public:
|
||||
const MCExpr *Subsection) const override {}
|
||||
|
||||
/// Base address of PTX sections is zero.
|
||||
bool isBaseAddressKnownZero() const override { return true; }
|
||||
bool UseCodeAlign() const override { return false; }
|
||||
bool isVirtualSection() const override { return false; }
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user