summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter')
-rw-r--r--lld/lib/ReaderWriter/CMakeLists.txt5
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFReader.h2
-rw-r--r--lld/lib/ReaderWriter/ELF/OutputELFWriter.h2
-rw-r--r--lld/lib/ReaderWriter/ELF/SegmentChunks.h2
-rw-r--r--lld/lib/ReaderWriter/ELF/Writer.cpp2
-rw-r--r--lld/lib/ReaderWriter/ELF/Writer.h2
-rw-r--r--lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp4
-rw-r--r--lld/lib/ReaderWriter/MachO/WriterMachO.cpp2
-rw-r--r--lld/lib/ReaderWriter/Native/CMakeLists.txt2
-rw-r--r--lld/lib/ReaderWriter/Native/Makefile2
-rw-r--r--lld/lib/ReaderWriter/Native/ReaderNative.cpp2
-rw-r--r--lld/lib/ReaderWriter/Native/WriterNative.cpp2
-rw-r--r--lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp4
-rw-r--r--lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp2
-rw-r--r--lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp2
-rw-r--r--lld/lib/ReaderWriter/Reader.cpp119
-rw-r--r--lld/lib/ReaderWriter/Writer.cpp23
-rw-r--r--lld/lib/ReaderWriter/YAML/CMakeLists.txt2
-rw-r--r--lld/lib/ReaderWriter/YAML/Makefile2
-rw-r--r--lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp4
20 files changed, 22 insertions, 165 deletions
diff --git a/lld/lib/ReaderWriter/CMakeLists.txt b/lld/lib/ReaderWriter/CMakeLists.txt
index 5aa2c2eb223..9b9102b5d63 100644
--- a/lld/lib/ReaderWriter/CMakeLists.txt
+++ b/lld/lib/ReaderWriter/CMakeLists.txt
@@ -12,11 +12,10 @@ add_llvm_library(lldReaderWriter
CoreLinkingContext.cpp
FileArchive.cpp
LinkerScript.cpp
- Reader.cpp
- Writer.cpp
- FileArchive.cpp
LINK_LIBS
lldCore
+ lldPasses
+ lldYAML
LLVMObject
LLVMSupport
)
diff --git a/lld/lib/ReaderWriter/ELF/ELFReader.h b/lld/lib/ReaderWriter/ELF/ELFReader.h
index 08aa7174318..58e2bcc90c2 100644
--- a/lld/lib/ReaderWriter/ELF/ELFReader.h
+++ b/lld/lib/ReaderWriter/ELF/ELFReader.h
@@ -13,7 +13,7 @@
#include "CreateELF.h"
#include "DynamicFile.h"
#include "ELFFile.h"
-#include "lld/ReaderWriter/Reader.h"
+#include "lld/Core/Reader.h"
namespace lld {
namespace elf {
diff --git a/lld/lib/ReaderWriter/ELF/OutputELFWriter.h b/lld/lib/ReaderWriter/ELF/OutputELFWriter.h
index c23bd5bf027..46e31461982 100644
--- a/lld/lib/ReaderWriter/ELF/OutputELFWriter.h
+++ b/lld/lib/ReaderWriter/ELF/OutputELFWriter.h
@@ -16,7 +16,7 @@
#include "lld/Core/Parallel.h"
#include "lld/Core/SharedLibraryFile.h"
#include "lld/ReaderWriter/ELFLinkingContext.h"
-#include "lld/ReaderWriter/Writer.h"
+#include "lld/Core/Writer.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/Path.h"
diff --git a/lld/lib/ReaderWriter/ELF/SegmentChunks.h b/lld/lib/ReaderWriter/ELF/SegmentChunks.h
index ce563add313..cdee646e904 100644
--- a/lld/lib/ReaderWriter/ELF/SegmentChunks.h
+++ b/lld/lib/ReaderWriter/ELF/SegmentChunks.h
@@ -15,7 +15,7 @@
#include "SectionChunks.h"
#include "Writer.h"
#include "lld/Core/range.h"
-#include "lld/ReaderWriter/Writer.h"
+#include "lld/Core/Writer.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Object/ELF.h"
diff --git a/lld/lib/ReaderWriter/ELF/Writer.cpp b/lld/lib/ReaderWriter/ELF/Writer.cpp
index 39b2808b6e7..3071827e07d 100644
--- a/lld/lib/ReaderWriter/ELF/Writer.cpp
+++ b/lld/lib/ReaderWriter/ELF/Writer.cpp
@@ -7,7 +7,7 @@
//
//===----------------------------------------------------------------------===//
-#include "lld/ReaderWriter/Writer.h"
+#include "lld/Core/Writer.h"
#include "DynamicLibraryWriter.h"
#include "ExecutableWriter.h"
diff --git a/lld/lib/ReaderWriter/ELF/Writer.h b/lld/lib/ReaderWriter/ELF/Writer.h
index 08fd5e57d45..1e819467c55 100644
--- a/lld/lib/ReaderWriter/ELF/Writer.h
+++ b/lld/lib/ReaderWriter/ELF/Writer.h
@@ -11,7 +11,7 @@
#define LLD_READER_WRITER_ELF_WRITER_H
#include "lld/Core/File.h"
-#include "lld/ReaderWriter/Writer.h"
+#include "lld/Core/Writer.h"
namespace lld {
namespace elf {
diff --git a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp
index 24e17d0a5cf..9fe16108a56 100644
--- a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp
@@ -14,11 +14,11 @@
#include "MachOPasses.h"
#include "lld/Core/ArchiveLibraryFile.h"
#include "lld/Core/PassManager.h"
+#include "lld/Core/Reader.h"
+#include "lld/Core/Writer.h"
#include "lld/Driver/Driver.h"
#include "lld/Passes/LayoutPass.h"
#include "lld/Passes/RoundTripYAMLPass.h"
-#include "lld/ReaderWriter/Reader.h"
-#include "lld/ReaderWriter/Writer.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/Triple.h"
#include "llvm/Config/config.h"
diff --git a/lld/lib/ReaderWriter/MachO/WriterMachO.cpp b/lld/lib/ReaderWriter/MachO/WriterMachO.cpp
index a0e9d434c9a..de1c0e38063 100644
--- a/lld/lib/ReaderWriter/MachO/WriterMachO.cpp
+++ b/lld/lib/ReaderWriter/MachO/WriterMachO.cpp
@@ -7,10 +7,10 @@
//
//===----------------------------------------------------------------------===//
-#include "lld/ReaderWriter/Writer.h"
#include "ExecutableAtoms.hpp"
#include "MachONormalizedFile.h"
#include "lld/Core/File.h"
+#include "lld/Core/Writer.h"
#include "lld/ReaderWriter/MachOLinkingContext.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
diff --git a/lld/lib/ReaderWriter/Native/CMakeLists.txt b/lld/lib/ReaderWriter/Native/CMakeLists.txt
index d02ea78822e..e15f3d60e89 100644
--- a/lld/lib/ReaderWriter/Native/CMakeLists.txt
+++ b/lld/lib/ReaderWriter/Native/CMakeLists.txt
@@ -2,6 +2,6 @@ add_llvm_library(lldNative
ReaderNative.cpp
WriterNative.cpp
LINK_LIBS
- lldReaderWriter
+ lldCore
LLVMSupport
)
diff --git a/lld/lib/ReaderWriter/Native/Makefile b/lld/lib/ReaderWriter/Native/Makefile
index fea2cc56030..6aba3786890 100644
--- a/lld/lib/ReaderWriter/Native/Makefile
+++ b/lld/lib/ReaderWriter/Native/Makefile
@@ -9,6 +9,6 @@
LLD_LEVEL := ../../..
LIBRARYNAME := lldNative
-USEDLIBS = lldReaderWriter.a lldCore.a
+USEDLIBS = lldCore.a
include $(LLD_LEVEL)/Makefile
diff --git a/lld/lib/ReaderWriter/Native/ReaderNative.cpp b/lld/lib/ReaderWriter/Native/ReaderNative.cpp
index c73ac2b18e8..00160d05f54 100644
--- a/lld/lib/ReaderWriter/Native/ReaderNative.cpp
+++ b/lld/lib/ReaderWriter/Native/ReaderNative.cpp
@@ -11,8 +11,8 @@
#include "lld/Core/Atom.h"
#include "lld/Core/Error.h"
#include "lld/Core/File.h"
+#include "lld/Core/Reader.h"
#include "lld/Core/Simple.h"
-#include "lld/ReaderWriter/Reader.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Debug.h"
diff --git a/lld/lib/ReaderWriter/Native/WriterNative.cpp b/lld/lib/ReaderWriter/Native/WriterNative.cpp
index 6569395dddf..fbb9f3267a7 100644
--- a/lld/lib/ReaderWriter/Native/WriterNative.cpp
+++ b/lld/lib/ReaderWriter/Native/WriterNative.cpp
@@ -7,10 +7,10 @@
//
//===----------------------------------------------------------------------===//
-#include "lld/ReaderWriter/Writer.h"
#include "NativeFileFormat.h"
#include "lld/Core/File.h"
#include "lld/Core/LinkingContext.h"
+#include "lld/Core/Writer.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringRef.h"
diff --git a/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp b/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp
index dbe0244843e..b1159697894 100644
--- a/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/PECOFFLinkingContext.cpp
@@ -16,13 +16,13 @@
#include "LoadConfigPass.h"
#include "PDBPass.h"
#include "lld/Core/PassManager.h"
+#include "lld/Core/Reader.h"
#include "lld/Core/Simple.h"
+#include "lld/Core/Writer.h"
#include "lld/Passes/LayoutPass.h"
#include "lld/Passes/RoundTripNativePass.h"
#include "lld/Passes/RoundTripYAMLPass.h"
#include "lld/ReaderWriter/PECOFFLinkingContext.h"
-#include "lld/ReaderWriter/Reader.h"
-#include "lld/ReaderWriter/Writer.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Path.h"
diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
index dd261614c1c..92dc5285a6b 100644
--- a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
@@ -10,9 +10,9 @@
#include "Atoms.h"
#include "lld/Core/Alias.h"
#include "lld/Core/File.h"
+#include "lld/Core/Reader.h"
#include "lld/Driver/Driver.h"
#include "lld/ReaderWriter/PECOFFLinkingContext.h"
-#include "lld/ReaderWriter/Reader.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Object/COFF.h"
diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
index 2bd24c4338f..89fdd72b90b 100644
--- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
@@ -23,9 +23,9 @@
#include "WriterImportLibrary.h"
#include "lld/Core/DefinedAtom.h"
#include "lld/Core/File.h"
+#include "lld/Core/Writer.h"
#include "lld/ReaderWriter/AtomLayout.h"
#include "lld/ReaderWriter/PECOFFLinkingContext.h"
-#include "lld/ReaderWriter/Writer.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Object/COFF.h"
#include "llvm/Support/COFF.h"
diff --git a/lld/lib/ReaderWriter/Reader.cpp b/lld/lib/ReaderWriter/Reader.cpp
deleted file mode 100644
index 616f475b282..00000000000
--- a/lld/lib/ReaderWriter/Reader.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//===- lib/ReaderWriter/Reader.cpp ----------------------------------------===//
-//
-// The LLVM Linker
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "lld/Core/File.h"
-#include "lld/ReaderWriter/Reader.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Support/Errc.h"
-#include "llvm/Support/FileUtilities.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/Path.h"
-#include <memory>
-#include <system_error>
-
-namespace lld {
-
-YamlIOTaggedDocumentHandler::~YamlIOTaggedDocumentHandler() {}
-
-void Registry::add(std::unique_ptr<Reader> reader) {
- _readers.push_back(std::move(reader));
-}
-
-void Registry::add(std::unique_ptr<YamlIOTaggedDocumentHandler> handler) {
- _yamlHandlers.push_back(std::move(handler));
-}
-
-std::error_code
-Registry::loadFile(std::unique_ptr<MemoryBuffer> mb,
- std::vector<std::unique_ptr<File>> &result) const {
- // Get file type.
- StringRef content(mb->getBufferStart(), mb->getBufferSize());
- llvm::sys::fs::file_magic fileType = llvm::sys::fs::identify_magic(content);
- // Get file extension.
- StringRef extension = llvm::sys::path::extension(mb->getBufferIdentifier());
-
- // Ask each registered reader if it can handle this file type or extension.
- for (const std::unique_ptr<Reader> &reader : _readers) {
- if (!reader->canParse(fileType, extension, *mb))
- continue;
- if (std::error_code ec = reader->loadFile(std::move(mb), *this, result))
- return ec;
- return std::error_code();
- }
-
- // No Reader could parse this file.
- return make_error_code(llvm::errc::executable_format_error);
-}
-
-static const Registry::KindStrings kindStrings[] = {
- {Reference::kindInGroup, "in-group"},
- {Reference::kindLayoutAfter, "layout-after"},
- {Reference::kindLayoutBefore, "layout-before"},
- {Reference::kindGroupChild, "group-child"},
- {Reference::kindAssociate, "associate"},
- LLD_KIND_STRING_END};
-
-Registry::Registry() {
- addKindTable(Reference::KindNamespace::all, Reference::KindArch::all,
- kindStrings);
-}
-
-bool Registry::handleTaggedDoc(llvm::yaml::IO &io,
- const lld::File *&file) const {
- for (const std::unique_ptr<YamlIOTaggedDocumentHandler> &h : _yamlHandlers)
- if (h->handledDocTag(io, file))
- return true;
- return false;
-}
-
-
-void Registry::addKindTable(Reference::KindNamespace ns,
- Reference::KindArch arch,
- const KindStrings array[]) {
- KindEntry entry = { ns, arch, array };
- _kindEntries.push_back(entry);
-}
-
-bool Registry::referenceKindFromString(StringRef inputStr,
- Reference::KindNamespace &ns,
- Reference::KindArch &arch,
- Reference::KindValue &value) const {
- for (const KindEntry &entry : _kindEntries) {
- for (const KindStrings *pair = entry.array; !pair->name.empty(); ++pair) {
- if (!inputStr.equals(pair->name))
- continue;
- ns = entry.ns;
- arch = entry.arch;
- value = pair->value;
- return true;
- }
- }
- return false;
-}
-
-bool Registry::referenceKindToString(Reference::KindNamespace ns,
- Reference::KindArch arch,
- Reference::KindValue value,
- StringRef &str) const {
- for (const KindEntry &entry : _kindEntries) {
- if (entry.ns != ns)
- continue;
- if (entry.arch != arch)
- continue;
- for (const KindStrings *pair = entry.array; !pair->name.empty(); ++pair) {
- if (pair->value != value)
- continue;
- str = pair->name;
- return true;
- }
- }
- return false;
-}
-
-} // end namespace lld
diff --git a/lld/lib/ReaderWriter/Writer.cpp b/lld/lib/ReaderWriter/Writer.cpp
deleted file mode 100644
index 40e0a0b227f..00000000000
--- a/lld/lib/ReaderWriter/Writer.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//===- lib/ReaderWriter/Writer.cpp ----------------------------------------===//
-//
-// The LLVM Linker
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "lld/Core/File.h"
-#include "lld/ReaderWriter/Writer.h"
-
-namespace lld {
-Writer::Writer() {
-}
-
-Writer::~Writer() {
-}
-
-bool Writer::createImplicitFiles(std::vector<std::unique_ptr<File> > &) {
- return true;
-}
-} // end namespace lld
diff --git a/lld/lib/ReaderWriter/YAML/CMakeLists.txt b/lld/lib/ReaderWriter/YAML/CMakeLists.txt
index 8b071d3d108..b955baa9420 100644
--- a/lld/lib/ReaderWriter/YAML/CMakeLists.txt
+++ b/lld/lib/ReaderWriter/YAML/CMakeLists.txt
@@ -1,6 +1,6 @@
add_llvm_library(lldYAML
ReaderWriterYAML.cpp
LINK_LIBS
- lldReaderWriter
+ lldCore
LLVMSupport
)
diff --git a/lld/lib/ReaderWriter/YAML/Makefile b/lld/lib/ReaderWriter/YAML/Makefile
index 02a66f9d6ea..739b6eae747 100644
--- a/lld/lib/ReaderWriter/YAML/Makefile
+++ b/lld/lib/ReaderWriter/YAML/Makefile
@@ -9,6 +9,6 @@
LLD_LEVEL := ../../..
LIBRARYNAME := lldYAML
-USEDLIBS = lldReaderWriter.a lldCore.a
+USEDLIBS = lldCore.a
include $(LLD_LEVEL)/Makefile
diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
index faa5614e745..cc1c8a5d5c1 100644
--- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
+++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
@@ -12,10 +12,10 @@
#include "lld/Core/Error.h"
#include "lld/Core/File.h"
#include "lld/Core/LLVM.h"
+#include "lld/Core/Reader.h"
#include "lld/Core/Reference.h"
#include "lld/Core/Simple.h"
-#include "lld/ReaderWriter/Reader.h"
-#include "lld/ReaderWriter/Writer.h"
+#include "lld/Core/Writer.h"
#include "lld/ReaderWriter/YamlContext.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringMap.h"
OpenPOWER on IntegriCloud