diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-01 18:41:30 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-01 18:41:30 +0000 |
commit | 4808c6d064fd2408a35de72e7285dd30acd87c92 (patch) | |
tree | bc0d80fd7e3817b72a6fce8bccc16a914a8cc8c6 | |
parent | b17f739808a7956b6b443ac1e005c42872fdc4a8 (diff) | |
download | bcm5719-llvm-4808c6d064fd2408a35de72e7285dd30acd87c92.tar.gz bcm5719-llvm-4808c6d064fd2408a35de72e7285dd30acd87c92.zip |
Delete the setModule method from the Linker.
It was only used from LTO for a debug feature, and LTO can just create
another linker.
It is pretty odd to have a method to reset the module in the middle of a
link. It would make IdentifiedStructTypes inconsistent with the Module
for example.
llvm-svn: 254434
-rw-r--r-- | llvm/include/llvm/LTO/LTOCodeGenerator.h | 4 | ||||
-rw-r--r-- | llvm/include/llvm/Linker/Linker.h | 3 | ||||
-rw-r--r-- | llvm/lib/LTO/LTOCodeGenerator.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Linker/LinkModules.cpp | 4 |
4 files changed, 6 insertions, 13 deletions
diff --git a/llvm/include/llvm/LTO/LTOCodeGenerator.h b/llvm/include/llvm/LTO/LTOCodeGenerator.h index 0d3c79bf5e8..c322288a1ae 100644 --- a/llvm/include/llvm/LTO/LTOCodeGenerator.h +++ b/llvm/include/llvm/LTO/LTOCodeGenerator.h @@ -39,7 +39,6 @@ #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/StringMap.h" -#include "llvm/Linker/Linker.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" #include <string> @@ -49,6 +48,7 @@ namespace llvm { class LLVMContext; class DiagnosticInfo; class GlobalValue; + class Linker; class Mangler; class MemoryBuffer; class TargetLibraryInfo; @@ -171,7 +171,7 @@ private: std::unique_ptr<LLVMContext> OwnedContext; LLVMContext &Context; std::unique_ptr<Module> MergedModule; - Linker IRLinker; + std::unique_ptr<Linker> IRLinker; std::unique_ptr<TargetMachine> TargetMach; bool EmitDwarfDebugInfo = false; bool ScopeRestrictionsDone = false; diff --git a/llvm/include/llvm/Linker/Linker.h b/llvm/include/llvm/Linker/Linker.h index 610b1ddf989..3f6c7b6c694 100644 --- a/llvm/include/llvm/Linker/Linker.h +++ b/llvm/include/llvm/Linker/Linker.h @@ -85,9 +85,6 @@ public: const FunctionInfoIndex *Index = nullptr, Function *FuncToImport = nullptr); - /// \brief Set the composite to the passed-in module. - void setModule(Module *Dst); - static bool LinkModules(Module *Dest, Module *Src, DiagnosticHandlerFunction DiagnosticHandler, unsigned Flags = Flags::None); diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp index 931bcf0d23f..37ee7e8c53c 100644 --- a/llvm/lib/LTO/LTOCodeGenerator.cpp +++ b/llvm/lib/LTO/LTOCodeGenerator.cpp @@ -67,14 +67,14 @@ const char* LTOCodeGenerator::getVersionString() { LTOCodeGenerator::LTOCodeGenerator() : Context(getGlobalContext()), MergedModule(new Module("ld-temp.o", Context)), - IRLinker(MergedModule.get()) { + IRLinker(new Linker(MergedModule.get())) { initializeLTOPasses(); } LTOCodeGenerator::LTOCodeGenerator(std::unique_ptr<LLVMContext> Context) : OwnedContext(std::move(Context)), Context(*OwnedContext), MergedModule(new Module("ld-temp.o", *OwnedContext)), - IRLinker(MergedModule.get()) { + IRLinker(new Linker(MergedModule.get())) { initializeLTOPasses(); } @@ -114,7 +114,7 @@ bool LTOCodeGenerator::addModule(LTOModule *Mod) { assert(&Mod->getModule().getContext() == &Context && "Expected module in same context"); - bool ret = IRLinker.linkInModule(&Mod->getModule()); + bool ret = IRLinker->linkInModule(&Mod->getModule()); const std::vector<const char *> &undefs = Mod->getAsmUndefinedRefs(); for (int i = 0, e = undefs.size(); i != e; ++i) @@ -130,7 +130,7 @@ void LTOCodeGenerator::setModule(std::unique_ptr<LTOModule> Mod) { AsmUndefinedRefs.clear(); MergedModule = Mod->takeModule(); - IRLinker.setModule(MergedModule.get()); + IRLinker = make_unique<Linker>(MergedModule.get()); const std::vector<const char*> &Undefs = Mod->getAsmUndefinedRefs(); for (int I = 0, E = Undefs.size(); I != E; ++I) diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp index f745df56f9a..c57c70e322a 100644 --- a/llvm/lib/Linker/LinkModules.cpp +++ b/llvm/lib/Linker/LinkModules.cpp @@ -2071,10 +2071,6 @@ bool Linker::linkInModule(Module *Src, unsigned Flags, return RetCode; } -void Linker::setModule(Module *Dst) { - init(Dst, DiagnosticHandler); -} - //===----------------------------------------------------------------------===// // LinkModules entrypoint. //===----------------------------------------------------------------------===// |