diff options
22 files changed, 3 insertions, 247 deletions
diff --git a/lld/include/lld/Passes/RoundTripNativePass.h b/lld/include/lld/Passes/RoundTripNativePass.h deleted file mode 100644 index 796fee8660c..00000000000 --- a/lld/include/lld/Passes/RoundTripNativePass.h +++ /dev/null @@ -1,39 +0,0 @@ -//===--Passes/RoundTripNativePass.h - Write Native file/Read it back------===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLD_PASSES_ROUND_TRIP_NATIVE_PASS_H -#define LLD_PASSES_ROUND_TRIP_NATIVE_PASS_H - -#include "lld/Core/File.h" -#include "lld/Core/LinkingContext.h" -#include "lld/Core/Pass.h" -#include <vector> - -namespace lld { -class RoundTripNativePass : public Pass { -public: - RoundTripNativePass(LinkingContext &context) : Pass(), _context(context) {} - - /// Writes to a native file and reads the atoms from the native file back. - /// Replaces mergedFile with the contents of the native File. - void perform(std::unique_ptr<MutableFile> &mergedFile) override; - - virtual ~RoundTripNativePass() {} - -private: - LinkingContext &_context; - // Keep the parsed file alive for the rest of the link. All atoms - // that are created by the RoundTripNativePass are owned by the - // nativeFile. - std::vector<std::unique_ptr<File> > _nativeFile; -}; - -} // namespace lld - -#endif // LLD_PASSES_ROUND_TRIP_NATIVE_PASS_H diff --git a/lld/include/lld/Passes/RoundTripYAMLPass.h b/lld/include/lld/Passes/RoundTripYAMLPass.h deleted file mode 100644 index 7f05673c9d0..00000000000 --- a/lld/include/lld/Passes/RoundTripYAMLPass.h +++ /dev/null @@ -1,39 +0,0 @@ -//===--Passes/RoundTripYAMLPass.h- Write YAML file/Read it back-----------===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLD_PASSES_ROUND_TRIP_YAML_PASS_H -#define LLD_PASSES_ROUND_TRIP_YAML_PASS_H - -#include "lld/Core/File.h" -#include "lld/Core/LinkingContext.h" -#include "lld/Core/Pass.h" -#include <vector> - -namespace lld { -class RoundTripYAMLPass : public Pass { -public: - RoundTripYAMLPass(LinkingContext &context) : Pass(), _context(context) {} - - /// Writes to a YAML file and reads the atoms from the YAML file back. - /// Replaces the mergedFile with new contents. - void perform(std::unique_ptr<MutableFile> &mergedFile) override; - - virtual ~RoundTripYAMLPass() {} - -private: - LinkingContext &_context; - // Keep the parsed file alive for the rest of the link. All atoms - // that are created by the RoundTripYAMLPass are owned by the - // yamlFile. - std::vector<std::unique_ptr<File> > _yamlFile; -}; - -} // namespace lld - -#endif // LLD_PASSES_ROUND_TRIP_YAML_PASS_H diff --git a/lld/lib/CMakeLists.txt b/lld/lib/CMakeLists.txt index 157099d3c31..699f5e93f8a 100644 --- a/lld/lib/CMakeLists.txt +++ b/lld/lib/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory(Config) add_subdirectory(Core) add_subdirectory(Driver) -add_subdirectory(Passes) add_subdirectory(ReaderWriter) diff --git a/lld/lib/Driver/CMakeLists.txt b/lld/lib/Driver/CMakeLists.txt index 7f4e82a4966..5b635fe197f 100644 --- a/lld/lib/Driver/CMakeLists.txt +++ b/lld/lib/Driver/CMakeLists.txt @@ -20,7 +20,6 @@ add_llvm_library(lldDriver WinLinkModuleDef.cpp LINK_LIBS lldConfig - lldPasses lldMachO lldPECOFF lldELF diff --git a/lld/lib/Driver/Driver.cpp b/lld/lib/Driver/Driver.cpp index ea494230067..24596dc68a7 100644 --- a/lld/lib/Driver/Driver.cpp +++ b/lld/lib/Driver/Driver.cpp @@ -17,8 +17,6 @@ #include "lld/Core/Resolver.h" #include "lld/Core/Writer.h" #include "lld/Driver/Driver.h" -#include "lld/Passes/RoundTripNativePass.h" -#include "lld/Passes/RoundTripYAMLPass.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/Option/Arg.h" @@ -116,17 +114,6 @@ bool Driver::link(LinkingContext &context, raw_ostream &diagnostics) { ScopedTask passTask(getDefaultDomain(), "Passes"); PassManager pm; context.addPasses(pm); - -#ifndef NDEBUG - llvm::Optional<std::string> env = - llvm::sys::Process::GetEnv("LLD_RUN_ROUNDTRIP_TEST"); - - if (env.hasValue() && !env.getValue().empty()) { - pm.add(llvm::make_unique<RoundTripYAMLPass>(context)); - pm.add(llvm::make_unique<RoundTripNativePass>(context)); - } -#endif - pm.runOnFile(merged); passTask.end(); diff --git a/lld/lib/Passes/CMakeLists.txt b/lld/lib/Passes/CMakeLists.txt deleted file mode 100644 index e1466ab8422..00000000000 --- a/lld/lib/Passes/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -add_llvm_library(lldPasses - RoundTripNativePass.cpp - RoundTripYAMLPass.cpp - LINK_LIBS - lldCore - lldNative - lldYAML - LLVMSupport - ) diff --git a/lld/lib/Passes/Makefile b/lld/lib/Passes/Makefile deleted file mode 100644 index 255a6df9794..00000000000 --- a/lld/lib/Passes/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -##===- lld/lib/Passes/Makefile ---------------------------*- Makefile -*-===## -# -# The LLVM Compiler Infrastructure -# -# This file is distributed under the University of Illinois Open Source -# License. See LICENSE.TXT for details. -# -##===----------------------------------------------------------------------===## - -LLD_LEVEL := ../.. -LIBRARYNAME := lldPasses - -include $(LLD_LEVEL)/Makefile diff --git a/lld/lib/Passes/RoundTripNativePass.cpp b/lld/lib/Passes/RoundTripNativePass.cpp deleted file mode 100644 index bb0ee516ffa..00000000000 --- a/lld/lib/Passes/RoundTripNativePass.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//===--Passes/RoundTripNativePass.cpp - Write Native file/Read it back-----===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "lld/Core/Instrumentation.h" -#include "lld/Core/Simple.h" -#include "lld/Core/Writer.h" -#include "lld/Passes/RoundTripNativePass.h" -#include "llvm/Support/Debug.h" -#include "llvm/Support/Path.h" -#include <memory> - -using namespace lld; - -#define DEBUG_TYPE "RoundTripNativePass" - -/// Perform the actual pass -void RoundTripNativePass::perform(std::unique_ptr<MutableFile> &mergedFile) { - ScopedTask task(getDefaultDomain(), "RoundTripNativePass"); - std::unique_ptr<Writer> nativeWriter = createWriterNative(); - SmallString<128> tmpNativeFile; - // Separate the directory from the filename - StringRef outFile = llvm::sys::path::filename(_context.outputPath()); - if (llvm::sys::fs::createTemporaryFile(outFile, "native", tmpNativeFile)) - return; - DEBUG(llvm::dbgs() << "RoundTripNativePass: " << tmpNativeFile << "\n"); - - // The file that is written would be kept around if there is a problem - // writing to the file or when reading atoms back from the file. - nativeWriter->writeFile(*mergedFile, tmpNativeFile.str()); - ErrorOr<std::unique_ptr<MemoryBuffer>> mb = - MemoryBuffer::getFile(tmpNativeFile.str()); - if (!mb) - return; - - std::error_code ec = _context.registry().loadFile( - std::move(mb.get()), _nativeFile); - if (ec) { - // Note: we need a way for Passes to report errors. - llvm_unreachable("native reader not registered or read error"); - } - File *objFile = _nativeFile[0].get(); - if (objFile->parse()) - llvm_unreachable("native reader parse error"); - mergedFile.reset(new SimpleFile(objFile->path())); - copyAtoms(mergedFile.get(), objFile); - llvm::sys::fs::remove(tmpNativeFile.str()); -} diff --git a/lld/lib/Passes/RoundTripYAMLPass.cpp b/lld/lib/Passes/RoundTripYAMLPass.cpp deleted file mode 100644 index bca0bad2f67..00000000000 --- a/lld/lib/Passes/RoundTripYAMLPass.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//===--Passes/RoundTripYAMLPass.cpp - Write YAML file/Read it back---------===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "lld/Core/Instrumentation.h" -#include "lld/Core/Simple.h" -#include "lld/Core/Writer.h" -#include "lld/Passes/RoundTripYAMLPass.h" -#include "llvm/Support/Debug.h" -#include "llvm/Support/Path.h" -#include <memory> - -using namespace lld; - -#define DEBUG_TYPE "RoundTripYAMLPass" - -/// Perform the actual pass -void RoundTripYAMLPass::perform(std::unique_ptr<MutableFile> &mergedFile) { - ScopedTask task(getDefaultDomain(), "RoundTripYAMLPass"); - std::unique_ptr<Writer> yamlWriter = createWriterYAML(_context); - SmallString<128> tmpYAMLFile; - // Separate the directory from the filename - StringRef outFile = llvm::sys::path::filename(_context.outputPath()); - if (llvm::sys::fs::createTemporaryFile(outFile, "yaml", tmpYAMLFile)) - return; - DEBUG(llvm::dbgs() << "RoundTripYAMLPass: " << tmpYAMLFile << "\n"); - - // The file that is written would be kept around if there is a problem - // writing to the file or when reading atoms back from the file. - yamlWriter->writeFile(*mergedFile, tmpYAMLFile.str()); - ErrorOr<std::unique_ptr<MemoryBuffer>> mb = - MemoryBuffer::getFile(tmpYAMLFile.str()); - if (!mb) - return; - - std::error_code ec = _context.registry().loadFile( - std::move(mb.get()), _yamlFile); - if (ec) { - // Note: we need a way for Passes to report errors. - llvm_unreachable("yaml reader not registered or read error"); - } - File *objFile = _yamlFile[0].get(); - if (objFile->parse()) - llvm_unreachable("native reader parse error"); - mergedFile.reset(new SimpleFile(objFile->path())); - copyAtoms(mergedFile.get(), objFile); - llvm::sys::fs::remove(tmpYAMLFile.str()); -} diff --git a/lld/lib/ReaderWriter/CMakeLists.txt b/lld/lib/ReaderWriter/CMakeLists.txt index 9b9102b5d63..1fd19eb73a7 100644 --- a/lld/lib/ReaderWriter/CMakeLists.txt +++ b/lld/lib/ReaderWriter/CMakeLists.txt @@ -14,7 +14,6 @@ add_llvm_library(lldReaderWriter LinkerScript.cpp LINK_LIBS lldCore - lldPasses lldYAML LLVMObject LLVMSupport diff --git a/lld/lib/ReaderWriter/CoreLinkingContext.cpp b/lld/lib/ReaderWriter/CoreLinkingContext.cpp index 640c58f0fea..94386d37d4f 100644 --- a/lld/lib/ReaderWriter/CoreLinkingContext.cpp +++ b/lld/lib/ReaderWriter/CoreLinkingContext.cpp @@ -12,7 +12,6 @@ #include "lld/Core/Pass.h" #include "lld/Core/PassManager.h" #include "lld/Core/Simple.h" -#include "lld/Passes/RoundTripYAMLPass.h" #include "lld/ReaderWriter/CoreLinkingContext.h" #include "llvm/ADT/ArrayRef.h" diff --git a/lld/lib/ReaderWriter/ELF/CMakeLists.txt b/lld/lib/ReaderWriter/ELF/CMakeLists.txt index e8ae05bc922..d67d00bd72a 100644 --- a/lld/lib/ReaderWriter/ELF/CMakeLists.txt +++ b/lld/lib/ReaderWriter/ELF/CMakeLists.txt @@ -4,7 +4,6 @@ add_llvm_library(lldELF Writer.cpp LINK_LIBS lldCore - lldPasses lldYAML LLVMSupport ) diff --git a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp index 99e61b9c85e..b4bf02dd7fb 100644 --- a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp +++ b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp @@ -13,7 +13,6 @@ #include "TargetHandler.h" #include "lld/Core/Instrumentation.h" #include "lld/Core/SharedLibraryFile.h" -#include "lld/Passes/RoundTripYAMLPass.h" #include "llvm/ADT/Triple.h" #include "llvm/Config/config.h" #include "llvm/Support/ELF.h" diff --git a/lld/lib/ReaderWriter/ELF/Makefile b/lld/lib/ReaderWriter/ELF/Makefile index c7f2958e18e..5791ecb9733 100644 --- a/lld/lib/ReaderWriter/ELF/Makefile +++ b/lld/lib/ReaderWriter/ELF/Makefile @@ -9,7 +9,6 @@ LLD_LEVEL := ../../.. LIBRARYNAME := lldELF -USEDLIBS = lldPasses.a CPP.Flags += -I$(PROJ_SRC_DIR)/$(LLD_LEVEL)/lib/ReaderWriter/ELF diff --git a/lld/lib/ReaderWriter/MachO/CMakeLists.txt b/lld/lib/ReaderWriter/MachO/CMakeLists.txt index d80afbe3810..e396537c63c 100644 --- a/lld/lib/ReaderWriter/MachO/CMakeLists.txt +++ b/lld/lib/ReaderWriter/MachO/CMakeLists.txt @@ -18,7 +18,6 @@ add_llvm_library(lldMachO WriterMachO.cpp LINK_LIBS lldCore - lldPasses lldYAML LLVMObject LLVMSupport diff --git a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp index a990cb103f4..6c30d6905cd 100644 --- a/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp +++ b/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp @@ -17,7 +17,6 @@ #include "lld/Core/Reader.h" #include "lld/Core/Writer.h" #include "lld/Driver/Driver.h" -#include "lld/Passes/RoundTripYAMLPass.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/Triple.h" #include "llvm/Config/config.h" diff --git a/lld/lib/ReaderWriter/PECOFF/CMakeLists.txt b/lld/lib/ReaderWriter/PECOFF/CMakeLists.txt index 561f2d63b68..86b49b79f19 100644 --- a/lld/lib/ReaderWriter/PECOFF/CMakeLists.txt +++ b/lld/lib/ReaderWriter/PECOFF/CMakeLists.txt @@ -11,7 +11,6 @@ add_llvm_library(lldPECOFF WriterPECOFF.cpp LINK_LIBS lldCore - lldPasses LLVMObject LLVMSupport ) diff --git a/lld/test/elf/Mips/pc23-range.test b/lld/test/elf/Mips/pc23-range.test index 908628b687d..7166176c462 100644 --- a/lld/test/elf/Mips/pc23-range.test +++ b/lld/test/elf/Mips/pc23-range.test @@ -1,8 +1,7 @@ # Check that LLD shows an error if ADDIUPC immediate is out of range. # RUN: yaml2obj -format=elf %s > %t-obj -# RUN: env LLD_RUN_ROUNDTRIP_TEST= \ -# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj 2>&1 | FileCheck %s +# RUN: lld -flavor gnu -target mipsel -o %t-exe %t-obj 2>&1 | FileCheck %s # CHECK: The addiupc instruction immediate 0x02000008 is out of range diff --git a/lld/test/elf/roundtrip.test b/lld/test/elf/roundtrip.test deleted file mode 100644 index 0788c255ce1..00000000000 --- a/lld/test/elf/roundtrip.test +++ /dev/null @@ -1,11 +0,0 @@ -# This tests the functionality of the RoundTrip Passes and verifies -# that the atoms belong to the native file after the passes finish - -# REQUIRES: asserts - -RUN: lld -flavor gnu -target x86_64 %p/Inputs/foo.o.x86-64 --noinhibit-exec \ -RUN: --output-filetype=yaml -o %t1 -RUN: FileCheck %s < %t1 - -CHECK:path:{{.*}}.native - diff --git a/lld/test/lit.cfg b/lld/test/lit.cfg index da1cc4a2b14..5b49765f789 100644 --- a/lld/test/lit.cfg +++ b/lld/test/lit.cfg @@ -28,9 +28,6 @@ config.suffixes = ['.objtxt', '.test'] # test_source_root: The root path where tests are located. config.test_source_root = os.path.dirname(__file__) -# run RoundTrip{YAML,Native}Tests. -config.environment['LLD_RUN_ROUNDTRIP_TEST'] = '1' - # test_exec_root: The root path where tests should be run. lld_obj_root = getattr(config, 'lld_obj_root', None) if lld_obj_root is not None: diff --git a/lld/tools/lld/Makefile b/lld/tools/lld/Makefile index 3b3d16a2d27..db84f57fae1 100644 --- a/lld/tools/lld/Makefile +++ b/lld/tools/lld/Makefile @@ -20,7 +20,7 @@ include $(LEVEL)/Makefile.config LINK_COMPONENTS := $(TARGETS_TO_BUILD) USEDLIBS = lldDriver.a lldConfig.a \ - lldELF.a lldMachO.a lldPasses.a lldPECOFF.a lldYAML.a \ + lldELF.a lldMachO.a lldPECOFF.a lldYAML.a \ lldReaderWriter.a lldCore.a lldNative.a \ lldHexagonELFTarget.a lldMipsELFTarget.a \ lldX86ELFTarget.a lldX86_64ELFTarget.a lldAArch64ELFTarget.a \ diff --git a/lld/unittests/DriverTests/Makefile b/lld/unittests/DriverTests/Makefile index 47d628236b4..bd5fed151f3 100644 --- a/lld/unittests/DriverTests/Makefile +++ b/lld/unittests/DriverTests/Makefile @@ -10,7 +10,7 @@ LLD_LEVEL = ../.. TESTNAME = DriverTests USEDLIBS = lldDriver.a lldConfig.a \ - lldELF.a lldMachO.a lldPasses.a lldPECOFF.a \ + lldELF.a lldMachO.a lldPECOFF.a \ lldCore.a lldNative.a lldReaderWriter.a \ lldHexagonELFTarget.a lldMipsELFTarget.a \ lldX86ELFTarget.a lldX86_64ELFTarget.a lldYAML.a \ |