From: Sam Clegg Date: Tue, 12 Sep 2017 18:31:24 +0000 (+0000) Subject: [WebAssembly] Remove flags from MCSectionWasm X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c6a7215922d91d98b22e964612258de38d07203d;p=llvm [WebAssembly] Remove flags from MCSectionWasm Looks like these were copied from the ELF sections but don't apply to Wasm and were not used anywhere. Also remove unused Wasm methods in MCContext. Differential Revision: https://reviews.llvm.org/D37633 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313058 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 2c60014adf2..92d419887d2 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -441,53 +441,27 @@ namespace llvm { getAssociativeCOFFSection(MCSectionCOFF *Sec, const MCSymbol *KeySym, unsigned UniqueID = GenericSectionID); - MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags) { - return getWasmSection(Section, Type, Flags, nullptr); - } - - MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const char *BeginSymName) { - return getWasmSection(Section, Type, Flags, "", BeginSymName); - } - - MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const Twine &Group) { - return getWasmSection(Section, Type, Flags, Group, nullptr); + MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type) { + return getWasmSection(Section, Type, nullptr); } MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const Twine &Group, const char *BeginSymName) { - return getWasmSection(Section, Type, Flags, Group, ~0, BeginSymName); + return getWasmSection(Section, Type, "", ~0, BeginSymName); } MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const Twine &Group, - unsigned UniqueID) { - return getWasmSection(Section, Type, Flags, Group, UniqueID, nullptr); + const Twine &Group, unsigned UniqueID) { + return getWasmSection(Section, Type, Group, UniqueID, nullptr); } MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const Twine &Group, - unsigned UniqueID, const char *BeginSymName); + const Twine &Group, unsigned UniqueID, + const char *BeginSymName); MCSectionWasm *getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const MCSymbolWasm *Group, - unsigned UniqueID, const char *BeginSymName); - - /// Get a section with the provided group identifier. This section is - /// named by concatenating \p Prefix with '.' then \p Suffix. The \p Type - /// describes the type of the section and \p Flags are used to further - /// configure this named section. - MCSectionWasm *getWasmNamedSection(const Twine &Prefix, const Twine &Suffix, - unsigned Type, unsigned Flags); - - MCSectionWasm *createWasmRelSection(const Twine &Name, unsigned Type, - unsigned Flags, - const MCSymbolWasm *Group); - - void renameWasmSection(MCSectionWasm *Section, StringRef Name); + const MCSymbolWasm *Group, unsigned UniqueID, + const char *BeginSymName); // Create and save a copy of STI and return a reference to the copy. MCSubtargetInfo &getSubtargetCopy(const MCSubtargetInfo &STI); diff --git a/include/llvm/MC/MCSectionWasm.h b/include/llvm/MC/MCSectionWasm.h index 29d62a7a6f8..dc9f042fc4f 100644 --- a/include/llvm/MC/MCSectionWasm.h +++ b/include/llvm/MC/MCSectionWasm.h @@ -31,12 +31,9 @@ private: /// TargetLoweringObjectFileWasm's WasmUniqueMap. StringRef SectionName; - /// This is the sh_type field of a section, drawn from the enums below. + /// This is the type of the section, from the enums in BinaryFormat/Wasm.h unsigned Type; - /// This is the sh_flags field of a section, drawn from the enums below. - unsigned Flags; - unsigned UniqueID; const MCSymbolWasm *Group; @@ -47,11 +44,10 @@ private: uint64_t SectionOffset; friend class MCContext; - MCSectionWasm(StringRef Section, unsigned type, unsigned flags, SectionKind K, + MCSectionWasm(StringRef Section, unsigned type, SectionKind K, const MCSymbolWasm *group, unsigned UniqueID, MCSymbol *Begin) : MCSection(SV_Wasm, K, Begin), SectionName(Section), Type(type), - Flags(flags), UniqueID(UniqueID), Group(group), SectionOffset(0) { - } + UniqueID(UniqueID), Group(group), SectionOffset(0) {} void setSectionName(StringRef Name) { SectionName = Name; } @@ -64,8 +60,6 @@ public: StringRef getSectionName() const { return SectionName; } unsigned getType() const { return Type; } - unsigned getFlags() const { return Flags; } - void setFlags(unsigned F) { Flags = F; } const MCSymbolWasm *getGroup() const { return Group; } void PrintSwitchToSection(const MCAsmInfo &MAI, const Triple &T, diff --git a/include/llvm/Target/TargetLoweringObjectFile.h b/include/llvm/Target/TargetLoweringObjectFile.h index 80d4d8e42e5..3c4af8dcf30 100644 --- a/include/llvm/Target/TargetLoweringObjectFile.h +++ b/include/llvm/Target/TargetLoweringObjectFile.h @@ -47,10 +47,10 @@ protected: bool SupportGOTPCRelWithOffset = true; /// This section contains the static constructor pointer list. - MCSection *StaticCtorSection; + MCSection *StaticCtorSection = nullptr; /// This section contains the static destructor pointer list. - MCSection *StaticDtorSection; + MCSection *StaticDtorSection = nullptr; public: TargetLoweringObjectFile() = default; diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 6922e33c8d6..fcb20184116 100644 --- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -1252,11 +1252,9 @@ MCSection *TargetLoweringObjectFileWasm::getExplicitSectionGlobal( return nullptr; } -static MCSectionWasm * -selectWasmSectionForGlobal(MCContext &Ctx, const GlobalObject *GO, - SectionKind Kind, Mangler &Mang, - const TargetMachine &TM, bool EmitUniqueSection, - unsigned Flags, unsigned *NextUniqueID) { +static MCSectionWasm *selectWasmSectionForGlobal( + MCContext &Ctx, const GlobalObject *GO, SectionKind Kind, Mangler &Mang, + const TargetMachine &TM, bool EmitUniqueSection, unsigned *NextUniqueID) { StringRef Group = ""; if (getWasmComdat(GO)) llvm_unreachable("comdat not yet supported for wasm"); @@ -1279,8 +1277,7 @@ selectWasmSectionForGlobal(MCContext &Ctx, const GlobalObject *GO, UniqueID = *NextUniqueID; (*NextUniqueID)++; } - return Ctx.getWasmSection(Name, /*Type=*/0, Flags, - Group, UniqueID); + return Ctx.getWasmSection(Name, /*Type=*/0, Group, UniqueID); } MCSection *TargetLoweringObjectFileWasm::SelectSectionForGlobal( @@ -1299,8 +1296,7 @@ MCSection *TargetLoweringObjectFileWasm::SelectSectionForGlobal( EmitUniqueSection |= GO->hasComdat(); return selectWasmSectionForGlobal(getContext(), GO, Kind, getMangler(), TM, - EmitUniqueSection, /*Flags=*/0, - &NextUniqueID); + EmitUniqueSection, &NextUniqueID); } bool TargetLoweringObjectFileWasm::shouldPutJumpTableInFunctionSection( diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index 48ee84edb09..e7bd045c757 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -486,53 +486,17 @@ MCSectionCOFF *MCContext::getAssociativeCOFFSection(MCSectionCOFF *Sec, "", 0, UniqueID); } -void MCContext::renameWasmSection(MCSectionWasm *Section, StringRef Name) { - StringRef GroupName; - assert(!Section->getGroup() && "not yet implemented"); - - unsigned UniqueID = Section->getUniqueID(); - WasmUniquingMap.erase( - WasmSectionKey{Section->getSectionName(), GroupName, UniqueID}); - auto I = WasmUniquingMap.insert(std::make_pair( - WasmSectionKey{Name, GroupName, UniqueID}, - Section)) - .first; - StringRef CachedName = I->first.SectionName; - const_cast(Section)->setSectionName(CachedName); -} - -MCSectionWasm *MCContext::createWasmRelSection(const Twine &Name, unsigned Type, - unsigned Flags, - const MCSymbolWasm *Group) { - StringMap::iterator I; - bool Inserted; - std::tie(I, Inserted) = - RelSecNames.insert(std::make_pair(Name.str(), true)); - - return new (WasmAllocator.Allocate()) - MCSectionWasm(I->getKey(), Type, Flags, SectionKind::getReadOnly(), - Group, ~0, nullptr); -} - -MCSectionWasm *MCContext::getWasmNamedSection(const Twine &Prefix, - const Twine &Suffix, unsigned Type, - unsigned Flags) { - return getWasmSection(Prefix + "." + Suffix, Type, Flags, Suffix); -} - MCSectionWasm *MCContext::getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const Twine &Group, unsigned UniqueID, const char *BeginSymName) { MCSymbolWasm *GroupSym = nullptr; if (!Group.isTriviallyEmpty() && !Group.str().empty()) GroupSym = cast(getOrCreateSymbol(Group)); - return getWasmSection(Section, Type, Flags, GroupSym, UniqueID, BeginSymName); + return getWasmSection(Section, Type, GroupSym, UniqueID, BeginSymName); } MCSectionWasm *MCContext::getWasmSection(const Twine &Section, unsigned Type, - unsigned Flags, const MCSymbolWasm *GroupSym, unsigned UniqueID, const char *BeginSymName) { @@ -555,7 +519,7 @@ MCSectionWasm *MCContext::getWasmSection(const Twine &Section, unsigned Type, Begin = createTempSymbol(BeginSymName, false); MCSectionWasm *Result = new (WasmAllocator.Allocate()) - MCSectionWasm(CachedName, Type, Flags, Kind, GroupSym, UniqueID, Begin); + MCSectionWasm(CachedName, Type, Kind, GroupSym, UniqueID, Begin); Entry.second = Result; return Result; } diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp index 73288110ad8..ba376227767 100644 --- a/lib/MC/MCObjectFileInfo.cpp +++ b/lib/MC/MCObjectFileInfo.cpp @@ -820,24 +820,24 @@ void MCObjectFileInfo::initCOFFMCObjectFileInfo(const Triple &T) { void MCObjectFileInfo::initWasmMCObjectFileInfo(const Triple &T) { // TODO: Set the section types and flags. - TextSection = Ctx->getWasmSection(".text", 0, 0); - DataSection = Ctx->getWasmSection(".data", 0, 0); + TextSection = Ctx->getWasmSection(".text", 0); + DataSection = Ctx->getWasmSection(".data", 0); // TODO: Set the section types and flags. - DwarfLineSection = Ctx->getWasmSection(".debug_line", 0, 0); - DwarfStrSection = Ctx->getWasmSection(".debug_str", 0, 0); - DwarfLocSection = Ctx->getWasmSection(".debug_loc", 0, 0); - DwarfAbbrevSection = Ctx->getWasmSection(".debug_abbrev", 0, 0, "section_abbrev"); - DwarfARangesSection = Ctx->getWasmSection(".debug_aranges", 0, 0); - DwarfRangesSection = Ctx->getWasmSection(".debug_ranges", 0, 0, "debug_range"); - DwarfMacinfoSection = Ctx->getWasmSection(".debug_macinfo", 0, 0, "debug_macinfo"); - DwarfAddrSection = Ctx->getWasmSection(".debug_addr", 0, 0); - DwarfCUIndexSection = Ctx->getWasmSection(".debug_cu_index", 0, 0); - DwarfTUIndexSection = Ctx->getWasmSection(".debug_tu_index", 0, 0); - DwarfInfoSection = Ctx->getWasmSection(".debug_info", 0, 0, "section_info"); - DwarfFrameSection = Ctx->getWasmSection(".debug_frame", 0, 0); - DwarfPubNamesSection = Ctx->getWasmSection(".debug_pubnames", 0, 0); - DwarfPubTypesSection = Ctx->getWasmSection(".debug_pubtypes", 0, 0); + DwarfLineSection = Ctx->getWasmSection(".debug_line", 0); + DwarfStrSection = Ctx->getWasmSection(".debug_str", 0); + DwarfLocSection = Ctx->getWasmSection(".debug_loc", 0); + DwarfAbbrevSection = Ctx->getWasmSection(".debug_abbrev", 0, "section_abbrev"); + DwarfARangesSection = Ctx->getWasmSection(".debug_aranges", 0); + DwarfRangesSection = Ctx->getWasmSection(".debug_ranges", 0, "debug_range"); + DwarfMacinfoSection = Ctx->getWasmSection(".debug_macinfo", 0, "debug_macinfo"); + DwarfAddrSection = Ctx->getWasmSection(".debug_addr", 0); + DwarfCUIndexSection = Ctx->getWasmSection(".debug_cu_index", 0); + DwarfTUIndexSection = Ctx->getWasmSection(".debug_tu_index", 0); + DwarfInfoSection = Ctx->getWasmSection(".debug_info", 0, "section_info"); + DwarfFrameSection = Ctx->getWasmSection(".debug_frame", 0); + DwarfPubNamesSection = Ctx->getWasmSection(".debug_pubnames", 0); + DwarfPubTypesSection = Ctx->getWasmSection(".debug_pubtypes", 0); // TODO: Define more sections. }