aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2019-01-17 00:34:44 +0000
committerThomas Lively <tlively@google.com>2019-01-17 00:34:44 +0000
commitd24ae47db657b4ee48ac9540aafcf6475b4b9f85 (patch)
treed322bb7c1a47c9d296fc56b84ea921423eda86f0
parent015585abb2dc68d7bb273ff17bea47cdc77146ec (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.cpp2
-rw-r--r--lld/wasm/InputFiles.h3
-rw-r--r--lld/wasm/Writer.cpp47
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();