diff options
author | Thomas Lively <tlively@google.com> | 2019-01-17 00:34:44 +0000 |
---|---|---|
committer | Thomas Lively <tlively@google.com> | 2019-01-17 00:34:44 +0000 |
commit | d24ae47db657b4ee48ac9540aafcf6475b4b9f85 (patch) | |
tree | d322bb7c1a47c9d296fc56b84ea921423eda86f0 | |
parent | 015585abb2dc68d7bb273ff17bea47cdc77146ec (diff) |
Revert "[WebAssembly] Merge producers section"
This reverts commit 71eaf61c6c121c8c3bcaf3490557e92cf81599cb. One of
the lld tests was breaking, so revert this change until it is fixed.
llvm-svn: 351409
-rw-r--r-- | lld/wasm/InputFiles.cpp | 2 | ||||
-rw-r--r-- | lld/wasm/InputFiles.h | 3 | ||||
-rw-r--r-- | lld/wasm/Writer.cpp | 47 |
3 files changed, 2 insertions, 50 deletions
diff --git a/lld/wasm/InputFiles.cpp b/lld/wasm/InputFiles.cpp index 1c612cabdc47..e5da23db3773 100644 --- a/lld/wasm/InputFiles.cpp +++ b/lld/wasm/InputFiles.cpp @@ -240,8 +240,6 @@ void ObjFile::parse() { CustomSections.emplace_back(make<InputSection>(Section, this)); CustomSections.back()->setRelocations(Section.Relocations); CustomSectionsByIndex[SectionIndex] = CustomSections.back(); - if (Section.Name == "producers") - ProducersSection = &Section; } SectionIndex++; } diff --git a/lld/wasm/InputFiles.h b/lld/wasm/InputFiles.h index 267b2e7b00a8..bcda9cc8ee92 100644 --- a/lld/wasm/InputFiles.h +++ b/lld/wasm/InputFiles.h @@ -99,7 +99,6 @@ public: const WasmSection *CodeSection = nullptr; const WasmSection *DataSection = nullptr; - const WasmSection *ProducersSection = nullptr; // Maps input type indices to output type indices std::vector<uint32_t> TypeMap; @@ -140,7 +139,7 @@ public: }; // Will report a fatal() error if the input buffer is not a valid bitcode -// or wasm object file. +// or was object file. InputFile *createObjectFile(MemoryBufferRef MB); // Opens a given file. diff --git a/lld/wasm/Writer.cpp b/lld/wasm/Writer.cpp index ea65bc325998..819d4298fef2 100644 --- a/lld/wasm/Writer.cpp +++ b/lld/wasm/Writer.cpp @@ -21,8 +21,6 @@ #include "lld/Common/Strings.h" #include "lld/Common/Threads.h" #include "llvm/ADT/DenseSet.h" -#include "llvm/ADT/SmallSet.h" -#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" #include "llvm/BinaryFormat/Wasm.h" #include "llvm/Object/WasmTraits.h" @@ -97,7 +95,6 @@ private: void createRelocSections(); void createLinkingSection(); void createNameSection(); - void createProducersSection(); void writeHeader(); void writeSections(); @@ -330,8 +327,7 @@ void Writer::calculateCustomSections() { StringRef Name = Section->getName(); // These custom sections are known the linker and synthesized rather than // blindly copied - if (Name == "linking" || Name == "name" || Name == "producers" || - Name.startswith("reloc.")) + if (Name == "linking" || Name == "name" || Name.startswith("reloc.")) continue; // .. or it is a debug section if (StripDebug && Name.startswith(".debug_")) @@ -637,43 +633,6 @@ void Writer::createNameSection() { Sub.writeTo(Section->getStream()); } -void Writer::createProducersSection() { - SmallVector<std::pair<std::string, std::string>, 8> Languages; - SmallVector<std::pair<std::string, std::string>, 8> Tools; - SmallVector<std::pair<std::string, std::string>, 8> SDKs; - for (ObjFile *File : Symtab->ObjectFiles) { - const WasmProducerInfo &Info = File->getWasmObj()->getProducerInfo(); - for (auto &Producers : {std::make_pair(&Info.Languages, &Languages), - std::make_pair(&Info.Tools, &Tools), - std::make_pair(&Info.SDKs, &SDKs)}) { - llvm::SmallSet<StringRef, 8> SeenProducers; - for (auto &Producer : *Producers.first) - if (SeenProducers.insert(Producer.first).second) - Producers.second->push_back(Producer); - } - } - int FieldCount = - int(!Languages.empty()) + int(!Tools.empty()) + int(!SDKs.empty()); - if (FieldCount == 0) - return; - SyntheticSection *Section = - createSyntheticSection(WASM_SEC_CUSTOM, "producers"); - auto &OS = Section->getStream(); - writeUleb128(OS, FieldCount, "field count"); - for (auto &Field : {std::make_pair(StringRef("language"), Languages), - std::make_pair(StringRef("processed-by"), Tools), - std::make_pair(StringRef("sdk"), SDKs)}) { - if (Field.second.empty()) - continue; - writeStr(OS, Field.first, "field name"); - writeUleb128(OS, Field.second.size(), "number of entries"); - for (auto &Entry : Field.second) { - writeStr(OS, Entry.first, "producer name"); - writeStr(OS, Entry.second, "producer version"); - } - } -} - void Writer::writeHeader() { memcpy(Buffer->getBufferStart(), Header.data(), Header.size()); } @@ -813,13 +772,9 @@ void Writer::createSections() { createLinkingSection(); createRelocSections(); } - if (!Config->StripDebug && !Config->StripAll) createNameSection(); - if (!Config->StripAll) - createProducersSection(); - for (OutputSection *S : OutputSections) { S->setOffset(FileSize); S->finalizeContents(); |