mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-01 01:31:26 +00: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! llvm-svn: 344278
This commit is contained in:
parent
25b3900f9f
commit
2ce1d6faf8
@ -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,
|
||||
|
@ -1,3 +0,0 @@
|
||||
; RUN: llc < %s | FileCheck %s
|
||||
@a = internal unnamed_addr constant [1 x [1 x i32]] zeroinitializer, section ".init.rodata", align 4
|
||||
; CHECK: .init.rodata,"aM",{{[@%]}}progbits,4
|
Loading…
Reference in New Issue
Block a user