mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-21 03:05:26 -04:00
Revert r344197 "[MC][ELF] compute entity size for explicit sections"
Revert r344206 "[MC][ELF] Fix section_mergeable_size.ll" They were causing failures on too many important buildbots for too long. Please revert eagerly if your fix takes more than a couple of hours to land! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@344278 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -506,30 +506,6 @@ static const MCSymbolELF *getAssociatedSymbol(const GlobalObject *GO,
|
||||
return OtherGO ? dyn_cast<MCSymbolELF>(TM.getSymbol(OtherGO)) : nullptr;
|
||||
}
|
||||
|
||||
static unsigned getEntrySizeForKind(SectionKind Kind) {
|
||||
if (Kind.isMergeable1ByteCString())
|
||||
return 1;
|
||||
else if (Kind.isMergeable2ByteCString())
|
||||
return 2;
|
||||
else if (Kind.isMergeable4ByteCString())
|
||||
return 4;
|
||||
else if (Kind.isMergeableConst4())
|
||||
return 4;
|
||||
else if (Kind.isMergeableConst8())
|
||||
return 8;
|
||||
else if (Kind.isMergeableConst16())
|
||||
return 16;
|
||||
else if (Kind.isMergeableConst32())
|
||||
return 32;
|
||||
else {
|
||||
// We shouldn't have mergeable C strings or mergeable constants that we
|
||||
// didn't handle above.
|
||||
assert(!Kind.isMergeableCString() && "unknown string width");
|
||||
assert(!Kind.isMergeableConst() && "unknown data width");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
MCSection *TargetLoweringObjectFileELF::getExplicitSectionGlobal(
|
||||
const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const {
|
||||
StringRef SectionName = GO->getSection();
|
||||
@@ -574,7 +550,7 @@ MCSection *TargetLoweringObjectFileELF::getExplicitSectionGlobal(
|
||||
|
||||
MCSectionELF *Section = getContext().getELFSection(
|
||||
SectionName, getELFSectionType(SectionName, Kind), Flags,
|
||||
getEntrySizeForKind(Kind), Group, UniqueID, AssociatedSymbol);
|
||||
/*EntrySize=*/0, Group, UniqueID, AssociatedSymbol);
|
||||
// Make sure that we did not get some other section with incompatible sh_link.
|
||||
// This should not be possible due to UniqueID code above.
|
||||
assert(Section->getAssociatedSymbol() == AssociatedSymbol &&
|
||||
@@ -601,6 +577,30 @@ static StringRef getSectionPrefixForGlobal(SectionKind Kind) {
|
||||
return ".data.rel.ro";
|
||||
}
|
||||
|
||||
static unsigned getEntrySizeForKind(SectionKind Kind) {
|
||||
if (Kind.isMergeable1ByteCString())
|
||||
return 1;
|
||||
else if (Kind.isMergeable2ByteCString())
|
||||
return 2;
|
||||
else if (Kind.isMergeable4ByteCString())
|
||||
return 4;
|
||||
else if (Kind.isMergeableConst4())
|
||||
return 4;
|
||||
else if (Kind.isMergeableConst8())
|
||||
return 8;
|
||||
else if (Kind.isMergeableConst16())
|
||||
return 16;
|
||||
else if (Kind.isMergeableConst32())
|
||||
return 32;
|
||||
else {
|
||||
// We shouldn't have mergeable C strings or mergeable constants that we
|
||||
// didn't handle above.
|
||||
assert(!Kind.isMergeableCString() && "unknown string width");
|
||||
assert(!Kind.isMergeableConst() && "unknown data width");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static MCSectionELF *selectELFSectionForGlobal(
|
||||
MCContext &Ctx, const GlobalObject *GO, SectionKind Kind, Mangler &Mang,
|
||||
const TargetMachine &TM, bool EmitUniqueSection, unsigned Flags,
|
||||
|
||||
Reference in New Issue
Block a user