From c6a202e8593da2db6c7330085536436ddc3fa263 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 4 Dec 2015 02:42:28 +0000 Subject: [PATCH] Move a call to getGlobalContext out of lib/LTO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254696 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/LTO/LTOCodeGenerator.h | 4 +--- lib/LTO/LTOCodeGenerator.cpp | 11 ++--------- tools/llvm-lto/llvm-lto.cpp | 2 +- tools/lto/lto.cpp | 5 +++-- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/include/llvm/LTO/LTOCodeGenerator.h b/include/llvm/LTO/LTOCodeGenerator.h index c322288a1ae..876defbdcd3 100644 --- a/include/llvm/LTO/LTOCodeGenerator.h +++ b/include/llvm/LTO/LTOCodeGenerator.h @@ -62,8 +62,7 @@ namespace llvm { struct LTOCodeGenerator { static const char *getVersionString(); - LTOCodeGenerator(); - LTOCodeGenerator(std::unique_ptr Context); + LTOCodeGenerator(LLVMContext &Context); ~LTOCodeGenerator(); /// Merge given module. Return true on success. @@ -168,7 +167,6 @@ private: typedef StringMap StringSet; - std::unique_ptr OwnedContext; LLVMContext &Context; std::unique_ptr MergedModule; std::unique_ptr IRLinker; diff --git a/lib/LTO/LTOCodeGenerator.cpp b/lib/LTO/LTOCodeGenerator.cpp index 468ec24e3a0..b0dae74c13d 100644 --- a/lib/LTO/LTOCodeGenerator.cpp +++ b/lib/LTO/LTOCodeGenerator.cpp @@ -64,20 +64,13 @@ const char* LTOCodeGenerator::getVersionString() { #endif } -LTOCodeGenerator::LTOCodeGenerator() - : Context(getGlobalContext()), +LTOCodeGenerator::LTOCodeGenerator(LLVMContext &Context) + : Context(Context), MergedModule(new Module("ld-temp.o", Context)), IRLinker(new Linker(*MergedModule)) { initializeLTOPasses(); } -LTOCodeGenerator::LTOCodeGenerator(std::unique_ptr Context) - : OwnedContext(std::move(Context)), Context(*OwnedContext), - MergedModule(new Module("ld-temp.o", *OwnedContext)), - IRLinker(new Linker(*MergedModule)) { - initializeLTOPasses(); -} - LTOCodeGenerator::~LTOCodeGenerator() {} // Initialize LTO passes. Please keep this function in sync with diff --git a/tools/llvm-lto/llvm-lto.cpp b/tools/llvm-lto/llvm-lto.cpp index 86b95577b30..07cd9bb1eaf 100644 --- a/tools/llvm-lto/llvm-lto.cpp +++ b/tools/llvm-lto/llvm-lto.cpp @@ -257,7 +257,7 @@ int main(int argc, char **argv) { unsigned BaseArg = 0; - LTOCodeGenerator CodeGen; + LTOCodeGenerator CodeGen(getGlobalContext()); if (UseDiagnosticHandler) CodeGen.setDiagnosticHandler(handleDiagnostics, nullptr); diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp index ee389da2499..6058fb1197e 100644 --- a/tools/lto/lto.cpp +++ b/tools/lto/lto.cpp @@ -95,13 +95,14 @@ static void handleLibLTODiagnostic(lto_codegen_diagnostic_severity_t Severity, // libLTO API semantics, which require that the code generator owns the object // file. struct LibLTOCodeGenerator : LTOCodeGenerator { - LibLTOCodeGenerator() { + LibLTOCodeGenerator() : LTOCodeGenerator(getGlobalContext()) { setDiagnosticHandler(handleLibLTODiagnostic, nullptr); } LibLTOCodeGenerator(std::unique_ptr Context) - : LTOCodeGenerator(std::move(Context)) { + : LTOCodeGenerator(*Context), OwnedContext(std::move(Context)) { setDiagnosticHandler(handleLibLTODiagnostic, nullptr); } std::unique_ptr NativeObjectFile; + std::unique_ptr OwnedContext; }; } -- 2.34.1