summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2018-02-27 23:57:37 +0000
committerSam Clegg <sbc@chromium.org>2018-02-27 23:57:37 +0000
commit86b4a09a99b689f9717bd17cabd850857a53388d (patch)
tree260b68ecf7adf33be82da0880e0aa8109820296f
parent48a533d005d1de74e680896be8124b950b12f6fc (diff)
downloadbcm5719-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
-rw-r--r--llvm/include/llvm/BinaryFormat/Wasm.h2
-rw-r--r--llvm/include/llvm/ObjectYAML/WasmYAML.h1
-rw-r--r--llvm/lib/MC/WasmObjectWriter.cpp12
-rw-r--r--llvm/lib/Object/WasmObjectFile.cpp5
-rw-r--r--llvm/lib/ObjectYAML/WasmYAML.cpp1
-rw-r--r--llvm/test/MC/WebAssembly/array-fill.ll1
-rw-r--r--llvm/test/MC/WebAssembly/bss.ll1
-rw-r--r--llvm/test/MC/WebAssembly/comdat.ll1
-rw-r--r--llvm/test/MC/WebAssembly/explicit-sections.ll1
-rw-r--r--llvm/test/MC/WebAssembly/global-ctor-dtor.ll1
-rw-r--r--llvm/test/MC/WebAssembly/unnamed-data.ll1
-rw-r--r--llvm/test/MC/WebAssembly/visibility.ll1
-rw-r--r--llvm/test/MC/WebAssembly/weak-alias.ll1
-rw-r--r--llvm/test/MC/WebAssembly/weak.ll1
-rw-r--r--llvm/test/Object/obj2yaml.test1
-rw-r--r--llvm/test/ObjectYAML/wasm/linking_section.yaml2
-rw-r--r--llvm/test/ObjectYAML/wasm/weak_symbols.yaml2
-rw-r--r--llvm/test/tools/llvm-nm/wasm/exports.yaml1
-rw-r--r--llvm/test/tools/llvm-nm/wasm/imports.yaml1
-rw-r--r--llvm/test/tools/llvm-nm/wasm/weak-symbols.yaml1
-rw-r--r--llvm/test/tools/llvm-readobj/sections.test1
-rw-r--r--llvm/tools/llvm-readobj/WasmDumper.cpp1
-rw-r--r--llvm/tools/obj2yaml/wasm2yaml.cpp1
-rw-r--r--llvm/tools/yaml2obj/yaml2wasm.cpp5
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);
OpenPOWER on IntegriCloud