diff options
| author | Sam Clegg <sbc@chromium.org> | 2018-02-27 23:57:37 +0000 |
|---|---|---|
| committer | Sam Clegg <sbc@chromium.org> | 2018-02-27 23:57:37 +0000 |
| commit | 86b4a09a99b689f9717bd17cabd850857a53388d (patch) | |
| tree | 260b68ecf7adf33be82da0880e0aa8109820296f | |
| parent | 48a533d005d1de74e680896be8124b950b12f6fc (diff) | |
| download | bcm5719-llvm-86b4a09a99b689f9717bd17cabd850857a53388d.tar.gz bcm5719-llvm-86b4a09a99b689f9717bd17cabd850857a53388d.zip | |
[WebAssembly] Remove DataSize from linking metadata section
Neither the linker nor the runtime need this information
anymore. We were originally using this to model BSS size
but the plan is now to use the segment metadata to allow
for BSS segments.
Differential Revision: https://reviews.llvm.org/D41366
llvm-svn: 326267
24 files changed, 3 insertions, 43 deletions
diff --git a/llvm/include/llvm/BinaryFormat/Wasm.h b/llvm/include/llvm/BinaryFormat/Wasm.h index 06088a79c61..f648910284d 100644 --- a/llvm/include/llvm/BinaryFormat/Wasm.h +++ b/llvm/include/llvm/BinaryFormat/Wasm.h @@ -158,7 +158,6 @@ struct WasmFunctionName { }; struct WasmLinkingData { - uint32_t DataSize; std::vector<WasmInitFunc> InitFunctions; std::vector<WasmSymbolInfo> SymbolTable; }; @@ -227,7 +226,6 @@ enum : unsigned { // Kind codes used in the custom "linking" section enum : unsigned { - WASM_DATA_SIZE = 0x3, WASM_SEGMENT_INFO = 0x5, WASM_INIT_FUNCS = 0x6, WASM_COMDAT_INFO = 0x7, diff --git a/llvm/include/llvm/ObjectYAML/WasmYAML.h b/llvm/include/llvm/ObjectYAML/WasmYAML.h index e8060c11175..76bd3027891 100644 --- a/llvm/include/llvm/ObjectYAML/WasmYAML.h +++ b/llvm/include/llvm/ObjectYAML/WasmYAML.h @@ -195,7 +195,6 @@ struct LinkingSection : CustomSection { return C && C->Name == "linking"; } - uint32_t DataSize; std::vector<SymbolInfo> SymbolTable; std::vector<SegmentInfo> SegmentInfos; std::vector<InitFunction> InitFunctions; diff --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp index 8b32cc4c7b5..b1ce2c3c8f0 100644 --- a/llvm/lib/MC/WasmObjectWriter.cpp +++ b/llvm/lib/MC/WasmObjectWriter.cpp @@ -274,7 +274,7 @@ private: void writeCodeRelocSection(); void writeDataRelocSection(); void writeLinkingMetaDataSection( - uint32_t DataSize, ArrayRef<wasm::WasmSymbolInfo> SymbolInfos, + ArrayRef<wasm::WasmSymbolInfo> SymbolInfos, ArrayRef<std::pair<uint16_t, uint32_t>> InitFuncs, const std::map<StringRef, std::vector<WasmComdatEntry>> &Comdats); @@ -862,7 +862,7 @@ void WasmObjectWriter::writeDataRelocSection() { } void WasmObjectWriter::writeLinkingMetaDataSection( - uint32_t DataSize, ArrayRef<wasm::WasmSymbolInfo> SymbolInfos, + ArrayRef<wasm::WasmSymbolInfo> SymbolInfos, ArrayRef<std::pair<uint16_t, uint32_t>> InitFuncs, const std::map<StringRef, std::vector<WasmComdatEntry>> &Comdats) { SectionBookkeeping Section; @@ -897,12 +897,6 @@ void WasmObjectWriter::writeLinkingMetaDataSection( endSection(SubSection); } - if (DataSize > 0) { - startSection(SubSection, wasm::WASM_DATA_SIZE); - encodeULEB128(DataSize, getStream()); - endSection(SubSection); - } - if (DataSegments.size()) { startSection(SubSection, wasm::WASM_SEGMENT_INFO); encodeULEB128(DataSegments.size(), getStream()); @@ -1316,7 +1310,7 @@ void WasmObjectWriter::writeObject(MCAssembler &Asm, writeDataSection(); writeCodeRelocSection(); writeDataRelocSection(); - writeLinkingMetaDataSection(DataSize, SymbolInfos, InitFuncs, Comdats); + writeLinkingMetaDataSection(SymbolInfos, InitFuncs, Comdats); // TODO: Translate the .comment section to the output. // TODO: Translate debug sections to the output. diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp index 4483dae809d..4ae2d3bcaf6 100644 --- a/llvm/lib/Object/WasmObjectFile.cpp +++ b/llvm/lib/Object/WasmObjectFile.cpp @@ -197,8 +197,6 @@ static Error readSection(WasmSection &Section, const uint8_t *&Ptr, WasmObjectFile::WasmObjectFile(MemoryBufferRef Buffer, Error &Err) : ObjectFile(Binary::ID_Wasm, Buffer) { - LinkingData.DataSize = 0; - ErrorAsOutParameter ErrAsOutParam(&Err); Header.Magic = getData().substr(0, 4); if (Header.Magic != StringRef("\0asm", 4)) { @@ -334,9 +332,6 @@ Error WasmObjectFile::parseLinkingSection(const uint8_t *Ptr, if (Error Err = parseLinkingSectionSymtab(Ptr, SubSectionEnd)) return Err; break; - case wasm::WASM_DATA_SIZE: - LinkingData.DataSize = readVaruint32(Ptr); - break; case wasm::WASM_SEGMENT_INFO: { uint32_t Count = readVaruint32(Ptr); if (Count > DataSegments.size()) diff --git a/llvm/lib/ObjectYAML/WasmYAML.cpp b/llvm/lib/ObjectYAML/WasmYAML.cpp index 9433cf6a783..72df93b876a 100644 --- a/llvm/lib/ObjectYAML/WasmYAML.cpp +++ b/llvm/lib/ObjectYAML/WasmYAML.cpp @@ -57,7 +57,6 @@ static void sectionMapping(IO &IO, WasmYAML::NameSection &Section) { static void sectionMapping(IO &IO, WasmYAML::LinkingSection &Section) { commonSectionMapping(IO, Section); IO.mapRequired("Name", Section.Name); - IO.mapRequired("DataSize", Section.DataSize); IO.mapOptional("SymbolTable", Section.SymbolTable); IO.mapOptional("SegmentInfo", Section.SegmentInfos); IO.mapOptional("InitFunctions", Section.InitFunctions); diff --git a/llvm/test/MC/WebAssembly/array-fill.ll b/llvm/test/MC/WebAssembly/array-fill.ll index e510fbe6bbd..928db062af5 100644 --- a/llvm/test/MC/WebAssembly/array-fill.ll +++ b/llvm/test/MC/WebAssembly/array-fill.ll @@ -14,7 +14,6 @@ target triple = "wasm32-unknown-unknown-wasm" ; CHECK: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 2 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: DATA diff --git a/llvm/test/MC/WebAssembly/bss.ll b/llvm/test/MC/WebAssembly/bss.ll index a1d7def6eaf..3147aa50552 100644 --- a/llvm/test/MC/WebAssembly/bss.ll +++ b/llvm/test/MC/WebAssembly/bss.ll @@ -37,7 +37,6 @@ target triple = "wasm32-unknown-unknown-wasm" ; CHECK-NEXT: Content: '' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 8 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: DATA diff --git a/llvm/test/MC/WebAssembly/comdat.ll b/llvm/test/MC/WebAssembly/comdat.ll index 02fc802ae97..affd8fe45a6 100644 --- a/llvm/test/MC/WebAssembly/comdat.ll +++ b/llvm/test/MC/WebAssembly/comdat.ll @@ -75,7 +75,6 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) { ; CHECK-NEXT: Content: '616263' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 3 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: FUNCTION diff --git a/llvm/test/MC/WebAssembly/explicit-sections.ll b/llvm/test/MC/WebAssembly/explicit-sections.ll index 19a904b58ae..9b76927c378 100644 --- a/llvm/test/MC/WebAssembly/explicit-sections.ll +++ b/llvm/test/MC/WebAssembly/explicit-sections.ll @@ -32,7 +32,6 @@ target triple = "wasm32-unknown-unknown-wasm" ; CHECK-NEXT: Content: '08000000' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 28 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: DATA diff --git a/llvm/test/MC/WebAssembly/global-ctor-dtor.ll b/llvm/test/MC/WebAssembly/global-ctor-dtor.ll index ed7f977d18f..210d00eb2e6 100644 --- a/llvm/test/MC/WebAssembly/global-ctor-dtor.ll +++ b/llvm/test/MC/WebAssembly/global-ctor-dtor.ll @@ -110,7 +110,6 @@ declare void @func3() ; CHECK-NEXT: Content: '01040000' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 4 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: FUNCTION diff --git a/llvm/test/MC/WebAssembly/unnamed-data.ll b/llvm/test/MC/WebAssembly/unnamed-data.ll index fe66543a7f3..424209edcf1 100644 --- a/llvm/test/MC/WebAssembly/unnamed-data.ll +++ b/llvm/test/MC/WebAssembly/unnamed-data.ll @@ -44,7 +44,6 @@ target triple = "wasm32-unknown-unknown-wasm" ; CHECK-NEXT: Content: '06000000' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 28 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: DATA diff --git a/llvm/test/MC/WebAssembly/visibility.ll b/llvm/test/MC/WebAssembly/visibility.ll index 6a024c5c964..8bdaa1ebf66 100644 --- a/llvm/test/MC/WebAssembly/visibility.ll +++ b/llvm/test/MC/WebAssembly/visibility.ll @@ -16,7 +16,6 @@ entry: ; CHECK: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 0 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: FUNCTION diff --git a/llvm/test/MC/WebAssembly/weak-alias.ll b/llvm/test/MC/WebAssembly/weak-alias.ll index c8a907b0941..cbcbebe6f2c 100644 --- a/llvm/test/MC/WebAssembly/weak-alias.ll +++ b/llvm/test/MC/WebAssembly/weak-alias.ll @@ -138,7 +138,6 @@ entry: ; CHECK-NEXT: Content: '01000000' ; CHECK-NEXT: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 20 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: FUNCTION diff --git a/llvm/test/MC/WebAssembly/weak.ll b/llvm/test/MC/WebAssembly/weak.ll index 5d8369fca5b..9e88db4cce8 100644 --- a/llvm/test/MC/WebAssembly/weak.ll +++ b/llvm/test/MC/WebAssembly/weak.ll @@ -22,7 +22,6 @@ entry: ; CHECK: - Type: CUSTOM ; CHECK-NEXT: Name: linking -; CHECK-NEXT: DataSize: 0 ; CHECK-NEXT: SymbolTable: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Kind: DATA diff --git a/llvm/test/Object/obj2yaml.test b/llvm/test/Object/obj2yaml.test index c872940cd20..8b5e4ee4161 100644 --- a/llvm/test/Object/obj2yaml.test +++ b/llvm/test/Object/obj2yaml.test @@ -651,7 +651,6 @@ WASM-NEXT: FileHeader: WASM-NEXT: Version: 0x00000001 WASM: - Type: CUSTOM WASM-NEXT: Name: linking -WASM-NEXT: DataSize: 20 WASM-NEXT: SymbolTable: WASM-NEXT: - Index: 0 WASM-NEXT: Kind: FUNCTION diff --git a/llvm/test/ObjectYAML/wasm/linking_section.yaml b/llvm/test/ObjectYAML/wasm/linking_section.yaml index 818d7038547..0c2c86404ae 100644 --- a/llvm/test/ObjectYAML/wasm/linking_section.yaml +++ b/llvm/test/ObjectYAML/wasm/linking_section.yaml @@ -29,7 +29,6 @@ Sections: Content: '11110000' - Type: CUSTOM Name: linking - DataSize: 999 SymbolTable: - Index: 0 Kind: FUNCTION @@ -51,7 +50,6 @@ Sections: ... # CHECK: - Type: CUSTOM # CHECK-NEXT: Name: linking -# CHECK-NEXT: DataSize: 999 # CHECK-NEXT: SymbolTable: # CHECK-NEXT: - Index: 0 # CHECK-NEXT: Kind: FUNCTION diff --git a/llvm/test/ObjectYAML/wasm/weak_symbols.yaml b/llvm/test/ObjectYAML/wasm/weak_symbols.yaml index 696b14bbeae..3957caae74f 100644 --- a/llvm/test/ObjectYAML/wasm/weak_symbols.yaml +++ b/llvm/test/ObjectYAML/wasm/weak_symbols.yaml @@ -36,7 +36,6 @@ Sections: Body: 00 - Type: CUSTOM Name: linking - DataSize: 10 SymbolTable: - Index: 0 Kind: FUNCTION @@ -63,7 +62,6 @@ Sections: # CHECK: Index: 0 # CHECK: - Type: CUSTOM # CHECK: Name: linking -# CHECK: DataSize: 10 # CHECK: SymbolTable: # CHECK: - Index: 0 # CHECK: Kind: FUNCTION diff --git a/llvm/test/tools/llvm-nm/wasm/exports.yaml b/llvm/test/tools/llvm-nm/wasm/exports.yaml index 982adc4c897..de87978fd94 100644 --- a/llvm/test/tools/llvm-nm/wasm/exports.yaml +++ b/llvm/test/tools/llvm-nm/wasm/exports.yaml @@ -37,7 +37,6 @@ Sections: Content: '616263' - Type: CUSTOM Name: linking - DataSize: 3 SymbolTable: - Index: 0 Kind: FUNCTION diff --git a/llvm/test/tools/llvm-nm/wasm/imports.yaml b/llvm/test/tools/llvm-nm/wasm/imports.yaml index dc47327d2de..23f7218401d 100644 --- a/llvm/test/tools/llvm-nm/wasm/imports.yaml +++ b/llvm/test/tools/llvm-nm/wasm/imports.yaml @@ -25,7 +25,6 @@ Sections: GlobalMutable: false - Type: CUSTOM Name: linking - DataSize: 3 SymbolTable: - Index: 0 Kind: FUNCTION diff --git a/llvm/test/tools/llvm-nm/wasm/weak-symbols.yaml b/llvm/test/tools/llvm-nm/wasm/weak-symbols.yaml index 02d5f0b2668..1d0b0d1f6b5 100644 --- a/llvm/test/tools/llvm-nm/wasm/weak-symbols.yaml +++ b/llvm/test/tools/llvm-nm/wasm/weak-symbols.yaml @@ -48,7 +48,6 @@ Sections: Content: '616263' - Type: CUSTOM Name: linking - DataSize: 3 SymbolTable: - Index: 0 Kind: DATA diff --git a/llvm/test/tools/llvm-readobj/sections.test b/llvm/test/tools/llvm-readobj/sections.test index 86ae5aca2c5..7c38b30168a 100644 --- a/llvm/test/tools/llvm-readobj/sections.test +++ b/llvm/test/tools/llvm-readobj/sections.test @@ -537,6 +537,5 @@ WASM-NEXT: Type: CUSTOM (0x0) WASM-NEXT: Size: 72 WASM-NEXT: Offset: 220 WASM-NEXT: Name: linking -WASM-NEXT: DataSize: 13 WASM-NEXT: } WASM-NEXT: ] diff --git a/llvm/tools/llvm-readobj/WasmDumper.cpp b/llvm/tools/llvm-readobj/WasmDumper.cpp index a73cad93f2e..3d2f4d431d4 100644 --- a/llvm/tools/llvm-readobj/WasmDumper.cpp +++ b/llvm/tools/llvm-readobj/WasmDumper.cpp @@ -153,7 +153,6 @@ void WasmDumper::printSections() { W.printString("Name", WasmSec.Name); if (WasmSec.Name == "linking") { const wasm::WasmLinkingData &LinkingData = Obj->linkingData(); - W.printNumber("DataSize", LinkingData.DataSize); if (!LinkingData.InitFunctions.empty()) { ListScope Group(W, "InitFunctions"); for (const wasm::WasmInitFunc &F: LinkingData.InitFunctions) diff --git a/llvm/tools/obj2yaml/wasm2yaml.cpp b/llvm/tools/obj2yaml/wasm2yaml.cpp index ebd8b57f2eb..1abd7b8702e 100644 --- a/llvm/tools/obj2yaml/wasm2yaml.cpp +++ b/llvm/tools/obj2yaml/wasm2yaml.cpp @@ -109,7 +109,6 @@ std::unique_ptr<WasmYAML::CustomSection> WasmDumper::dumpCustomSection(const Was } LinkingSec->SymbolTable.emplace_back(Info); } - LinkingSec->DataSize = Obj.linkingData().DataSize; for (const wasm::WasmInitFunc &Func : Obj.linkingData().InitFunctions) { WasmYAML::InitFunction F{Func.Priority, Func.Symbol}; LinkingSec->InitFunctions.emplace_back(F); diff --git a/llvm/tools/yaml2obj/yaml2wasm.cpp b/llvm/tools/yaml2obj/yaml2wasm.cpp index abd1d427b76..ca842941980 100644 --- a/llvm/tools/yaml2obj/yaml2wasm.cpp +++ b/llvm/tools/yaml2obj/yaml2wasm.cpp @@ -136,11 +136,6 @@ int WasmWriter::writeSectionContent(raw_ostream &OS, WasmYAML::LinkingSection &S SubSectionWriter SubSection(OS); - // DATA_SIZE subsection - encodeULEB128(wasm::WASM_DATA_SIZE, OS); - encodeULEB128(Section.DataSize, SubSection.GetStream()); - SubSection.Done(); - // SYMBOL_TABLE subsection if (Section.SymbolTable.size()) { encodeULEB128(wasm::WASM_SYMBOL_TABLE, OS); |

