[llvm] r254434 - Delete the setModule method from the Linker.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 1 10:41:30 PST 2015
Author: rafael
Date: Tue Dec 1 12:41:30 2015
New Revision: 254434
URL: http://llvm.org/viewvc/llvm-project?rev=254434&view=rev
Log:
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.
Modified:
llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h
llvm/trunk/include/llvm/Linker/Linker.h
llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
llvm/trunk/lib/Linker/LinkModules.cpp
Modified: llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h?rev=254434&r1=254433&r2=254434&view=diff
==============================================================================
--- llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h (original)
+++ llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h Tue Dec 1 12:41:30 2015
@@ -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;
Modified: llvm/trunk/include/llvm/Linker/Linker.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Linker/Linker.h?rev=254434&r1=254433&r2=254434&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Linker/Linker.h (original)
+++ llvm/trunk/include/llvm/Linker/Linker.h Tue Dec 1 12:41:30 2015
@@ -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);
Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=254434&r1=254433&r2=254434&view=diff
==============================================================================
--- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Tue Dec 1 12:41:30 2015
@@ -67,14 +67,14 @@ const char* LTOCodeGenerator::getVersion
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(LTOModu
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::un
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)
Modified: llvm/trunk/lib/Linker/LinkModules.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Linker/LinkModules.cpp?rev=254434&r1=254433&r2=254434&view=diff
==============================================================================
--- llvm/trunk/lib/Linker/LinkModules.cpp (original)
+++ llvm/trunk/lib/Linker/LinkModules.cpp Tue Dec 1 12:41:30 2015
@@ -2071,10 +2071,6 @@ bool Linker::linkInModule(Module *Src, u
return RetCode;
}
-void Linker::setModule(Module *Dst) {
- init(Dst, DiagnosticHandler);
-}
-
//===----------------------------------------------------------------------===//
// LinkModules entrypoint.
//===----------------------------------------------------------------------===//
More information about the llvm-commits
mailing list