Skip to content

Commit 86b4a09

Browse files
committedFeb 27, 2018
[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
1 parent 48a533d commit 86b4a09

File tree

24 files changed

+3
-43
lines changed

24 files changed

+3
-43
lines changed
 

Diff for: ‎llvm/include/llvm/BinaryFormat/Wasm.h

-2
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ struct WasmFunctionName {
158158
};
159159

160160
struct WasmLinkingData {
161-
uint32_t DataSize;
162161
std::vector<WasmInitFunc> InitFunctions;
163162
std::vector<WasmSymbolInfo> SymbolTable;
164163
};
@@ -227,7 +226,6 @@ enum : unsigned {
227226

228227
// Kind codes used in the custom "linking" section
229228
enum : unsigned {
230-
WASM_DATA_SIZE = 0x3,
231229
WASM_SEGMENT_INFO = 0x5,
232230
WASM_INIT_FUNCS = 0x6,
233231
WASM_COMDAT_INFO = 0x7,

Diff for: ‎llvm/include/llvm/ObjectYAML/WasmYAML.h

-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@ struct LinkingSection : CustomSection {
195195
return C && C->Name == "linking";
196196
}
197197

198-
uint32_t DataSize;
199198
std::vector<SymbolInfo> SymbolTable;
200199
std::vector<SegmentInfo> SegmentInfos;
201200
std::vector<InitFunction> InitFunctions;

Diff for: ‎llvm/lib/MC/WasmObjectWriter.cpp

+3-9
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ class WasmObjectWriter : public MCObjectWriter {
274274
void writeCodeRelocSection();
275275
void writeDataRelocSection();
276276
void writeLinkingMetaDataSection(
277-
uint32_t DataSize, ArrayRef<wasm::WasmSymbolInfo> SymbolInfos,
277+
ArrayRef<wasm::WasmSymbolInfo> SymbolInfos,
278278
ArrayRef<std::pair<uint16_t, uint32_t>> InitFuncs,
279279
const std::map<StringRef, std::vector<WasmComdatEntry>> &Comdats);
280280

@@ -862,7 +862,7 @@ void WasmObjectWriter::writeDataRelocSection() {
862862
}
863863

864864
void WasmObjectWriter::writeLinkingMetaDataSection(
865-
uint32_t DataSize, ArrayRef<wasm::WasmSymbolInfo> SymbolInfos,
865+
ArrayRef<wasm::WasmSymbolInfo> SymbolInfos,
866866
ArrayRef<std::pair<uint16_t, uint32_t>> InitFuncs,
867867
const std::map<StringRef, std::vector<WasmComdatEntry>> &Comdats) {
868868
SectionBookkeeping Section;
@@ -897,12 +897,6 @@ void WasmObjectWriter::writeLinkingMetaDataSection(
897897
endSection(SubSection);
898898
}
899899

900-
if (DataSize > 0) {
901-
startSection(SubSection, wasm::WASM_DATA_SIZE);
902-
encodeULEB128(DataSize, getStream());
903-
endSection(SubSection);
904-
}
905-
906900
if (DataSegments.size()) {
907901
startSection(SubSection, wasm::WASM_SEGMENT_INFO);
908902
encodeULEB128(DataSegments.size(), getStream());
@@ -1316,7 +1310,7 @@ void WasmObjectWriter::writeObject(MCAssembler &Asm,
13161310
writeDataSection();
13171311
writeCodeRelocSection();
13181312
writeDataRelocSection();
1319-
writeLinkingMetaDataSection(DataSize, SymbolInfos, InitFuncs, Comdats);
1313+
writeLinkingMetaDataSection(SymbolInfos, InitFuncs, Comdats);
13201314

13211315
// TODO: Translate the .comment section to the output.
13221316
// TODO: Translate debug sections to the output.

Diff for: ‎llvm/lib/Object/WasmObjectFile.cpp

-5
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,6 @@ static Error readSection(WasmSection &Section, const uint8_t *&Ptr,
197197

198198
WasmObjectFile::WasmObjectFile(MemoryBufferRef Buffer, Error &Err)
199199
: ObjectFile(Binary::ID_Wasm, Buffer) {
200-
LinkingData.DataSize = 0;
201-
202200
ErrorAsOutParameter ErrAsOutParam(&Err);
203201
Header.Magic = getData().substr(0, 4);
204202
if (Header.Magic != StringRef("\0asm", 4)) {
@@ -334,9 +332,6 @@ Error WasmObjectFile::parseLinkingSection(const uint8_t *Ptr,
334332
if (Error Err = parseLinkingSectionSymtab(Ptr, SubSectionEnd))
335333
return Err;
336334
break;
337-
case wasm::WASM_DATA_SIZE:
338-
LinkingData.DataSize = readVaruint32(Ptr);
339-
break;
340335
case wasm::WASM_SEGMENT_INFO: {
341336
uint32_t Count = readVaruint32(Ptr);
342337
if (Count > DataSegments.size())

Diff for: ‎llvm/lib/ObjectYAML/WasmYAML.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ static void sectionMapping(IO &IO, WasmYAML::NameSection &Section) {
5757
static void sectionMapping(IO &IO, WasmYAML::LinkingSection &Section) {
5858
commonSectionMapping(IO, Section);
5959
IO.mapRequired("Name", Section.Name);
60-
IO.mapRequired("DataSize", Section.DataSize);
6160
IO.mapOptional("SymbolTable", Section.SymbolTable);
6261
IO.mapOptional("SegmentInfo", Section.SegmentInfos);
6362
IO.mapOptional("InitFunctions", Section.InitFunctions);

Diff for: ‎llvm/test/MC/WebAssembly/array-fill.ll

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ target triple = "wasm32-unknown-unknown-wasm"
1414

1515
; CHECK: - Type: CUSTOM
1616
; CHECK-NEXT: Name: linking
17-
; CHECK-NEXT: DataSize: 2
1817
; CHECK-NEXT: SymbolTable:
1918
; CHECK-NEXT: - Index: 0
2019
; CHECK-NEXT: Kind: DATA

Diff for: ‎llvm/test/MC/WebAssembly/bss.ll

-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ target triple = "wasm32-unknown-unknown-wasm"
3737
; CHECK-NEXT: Content: ''
3838
; CHECK-NEXT: - Type: CUSTOM
3939
; CHECK-NEXT: Name: linking
40-
; CHECK-NEXT: DataSize: 8
4140
; CHECK-NEXT: SymbolTable:
4241
; CHECK-NEXT: - Index: 0
4342
; CHECK-NEXT: Kind: DATA

Diff for: ‎llvm/test/MC/WebAssembly/comdat.ll

-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) {
7575
; CHECK-NEXT: Content: '616263'
7676
; CHECK-NEXT: - Type: CUSTOM
7777
; CHECK-NEXT: Name: linking
78-
; CHECK-NEXT: DataSize: 3
7978
; CHECK-NEXT: SymbolTable:
8079
; CHECK-NEXT: - Index: 0
8180
; CHECK-NEXT: Kind: FUNCTION

Diff for: ‎llvm/test/MC/WebAssembly/explicit-sections.ll

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ target triple = "wasm32-unknown-unknown-wasm"
3232
; CHECK-NEXT: Content: '08000000'
3333
; CHECK-NEXT: - Type: CUSTOM
3434
; CHECK-NEXT: Name: linking
35-
; CHECK-NEXT: DataSize: 28
3635
; CHECK-NEXT: SymbolTable:
3736
; CHECK-NEXT: - Index: 0
3837
; CHECK-NEXT: Kind: DATA

Diff for: ‎llvm/test/MC/WebAssembly/global-ctor-dtor.ll

-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ declare void @func3()
110110
; CHECK-NEXT: Content: '01040000'
111111
; CHECK-NEXT: - Type: CUSTOM
112112
; CHECK-NEXT: Name: linking
113-
; CHECK-NEXT: DataSize: 4
114113
; CHECK-NEXT: SymbolTable:
115114
; CHECK-NEXT: - Index: 0
116115
; CHECK-NEXT: Kind: FUNCTION

Diff for: ‎llvm/test/MC/WebAssembly/unnamed-data.ll

-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ target triple = "wasm32-unknown-unknown-wasm"
4444
; CHECK-NEXT: Content: '06000000'
4545
; CHECK-NEXT: - Type: CUSTOM
4646
; CHECK-NEXT: Name: linking
47-
; CHECK-NEXT: DataSize: 28
4847
; CHECK-NEXT: SymbolTable:
4948
; CHECK-NEXT: - Index: 0
5049
; CHECK-NEXT: Kind: DATA

Diff for: ‎llvm/test/MC/WebAssembly/visibility.ll

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ entry:
1616

1717
; CHECK: - Type: CUSTOM
1818
; CHECK-NEXT: Name: linking
19-
; CHECK-NEXT: DataSize: 0
2019
; CHECK-NEXT: SymbolTable:
2120
; CHECK-NEXT: - Index: 0
2221
; CHECK-NEXT: Kind: FUNCTION

Diff for: ‎llvm/test/MC/WebAssembly/weak-alias.ll

-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ entry:
138138
; CHECK-NEXT: Content: '01000000'
139139
; CHECK-NEXT: - Type: CUSTOM
140140
; CHECK-NEXT: Name: linking
141-
; CHECK-NEXT: DataSize: 20
142141
; CHECK-NEXT: SymbolTable:
143142
; CHECK-NEXT: - Index: 0
144143
; CHECK-NEXT: Kind: FUNCTION

Diff for: ‎llvm/test/MC/WebAssembly/weak.ll

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ entry:
2222

2323
; CHECK: - Type: CUSTOM
2424
; CHECK-NEXT: Name: linking
25-
; CHECK-NEXT: DataSize: 0
2625
; CHECK-NEXT: SymbolTable:
2726
; CHECK-NEXT: - Index: 0
2827
; CHECK-NEXT: Kind: DATA

Diff for: ‎llvm/test/Object/obj2yaml.test

-1
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,6 @@ WASM-NEXT: FileHeader:
651651
WASM-NEXT: Version: 0x00000001
652652
WASM: - Type: CUSTOM
653653
WASM-NEXT: Name: linking
654-
WASM-NEXT: DataSize: 20
655654
WASM-NEXT: SymbolTable:
656655
WASM-NEXT: - Index: 0
657656
WASM-NEXT: Kind: FUNCTION

Diff for: ‎llvm/test/ObjectYAML/wasm/linking_section.yaml

-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ Sections:
2929
Content: '11110000'
3030
- Type: CUSTOM
3131
Name: linking
32-
DataSize: 999
3332
SymbolTable:
3433
- Index: 0
3534
Kind: FUNCTION
@@ -51,7 +50,6 @@ Sections:
5150
...
5251
# CHECK: - Type: CUSTOM
5352
# CHECK-NEXT: Name: linking
54-
# CHECK-NEXT: DataSize: 999
5553
# CHECK-NEXT: SymbolTable:
5654
# CHECK-NEXT: - Index: 0
5755
# CHECK-NEXT: Kind: FUNCTION

Diff for: ‎llvm/test/ObjectYAML/wasm/weak_symbols.yaml

-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ Sections:
3636
Body: 00
3737
- Type: CUSTOM
3838
Name: linking
39-
DataSize: 10
4039
SymbolTable:
4140
- Index: 0
4241
Kind: FUNCTION
@@ -63,7 +62,6 @@ Sections:
6362
# CHECK: Index: 0
6463
# CHECK: - Type: CUSTOM
6564
# CHECK: Name: linking
66-
# CHECK: DataSize: 10
6765
# CHECK: SymbolTable:
6866
# CHECK: - Index: 0
6967
# CHECK: Kind: FUNCTION

Diff for: ‎llvm/test/tools/llvm-nm/wasm/exports.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ Sections:
3737
Content: '616263'
3838
- Type: CUSTOM
3939
Name: linking
40-
DataSize: 3
4140
SymbolTable:
4241
- Index: 0
4342
Kind: FUNCTION

Diff for: ‎llvm/test/tools/llvm-nm/wasm/imports.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ Sections:
2525
GlobalMutable: false
2626
- Type: CUSTOM
2727
Name: linking
28-
DataSize: 3
2928
SymbolTable:
3029
- Index: 0
3130
Kind: FUNCTION

Diff for: ‎llvm/test/tools/llvm-nm/wasm/weak-symbols.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ Sections:
4848
Content: '616263'
4949
- Type: CUSTOM
5050
Name: linking
51-
DataSize: 3
5251
SymbolTable:
5352
- Index: 0
5453
Kind: DATA

Diff for: ‎llvm/test/tools/llvm-readobj/sections.test

-1
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,5 @@ WASM-NEXT: Type: CUSTOM (0x0)
537537
WASM-NEXT: Size: 72
538538
WASM-NEXT: Offset: 220
539539
WASM-NEXT: Name: linking
540-
WASM-NEXT: DataSize: 13
541540
WASM-NEXT: }
542541
WASM-NEXT: ]

Diff for: ‎llvm/tools/llvm-readobj/WasmDumper.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@ void WasmDumper::printSections() {
153153
W.printString("Name", WasmSec.Name);
154154
if (WasmSec.Name == "linking") {
155155
const wasm::WasmLinkingData &LinkingData = Obj->linkingData();
156-
W.printNumber("DataSize", LinkingData.DataSize);
157156
if (!LinkingData.InitFunctions.empty()) {
158157
ListScope Group(W, "InitFunctions");
159158
for (const wasm::WasmInitFunc &F: LinkingData.InitFunctions)

Diff for: ‎llvm/tools/obj2yaml/wasm2yaml.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ std::unique_ptr<WasmYAML::CustomSection> WasmDumper::dumpCustomSection(const Was
109109
}
110110
LinkingSec->SymbolTable.emplace_back(Info);
111111
}
112-
LinkingSec->DataSize = Obj.linkingData().DataSize;
113112
for (const wasm::WasmInitFunc &Func : Obj.linkingData().InitFunctions) {
114113
WasmYAML::InitFunction F{Func.Priority, Func.Symbol};
115114
LinkingSec->InitFunctions.emplace_back(F);

Diff for: ‎llvm/tools/yaml2obj/yaml2wasm.cpp

-5
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,6 @@ int WasmWriter::writeSectionContent(raw_ostream &OS, WasmYAML::LinkingSection &S
136136

137137
SubSectionWriter SubSection(OS);
138138

139-
// DATA_SIZE subsection
140-
encodeULEB128(wasm::WASM_DATA_SIZE, OS);
141-
encodeULEB128(Section.DataSize, SubSection.GetStream());
142-
SubSection.Done();
143-
144139
// SYMBOL_TABLE subsection
145140
if (Section.SymbolTable.size()) {
146141
encodeULEB128(wasm::WASM_SYMBOL_TABLE, OS);

0 commit comments

Comments
 (0)
Please sign in to comment.