diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2016-04-14 21:59:01 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-04-14 21:59:01 +0000 |
commit | 03b42e41bf4bdd9ab05ea4c6905bae5d19971960 (patch) | |
tree | d4249845a564b11af673299653e7c4e876d8c4f2 /llvm/tools | |
parent | 3d1c1deb04efe0022f11ebc18bb43d7341ba0c75 (diff) | |
download | bcm5719-llvm-03b42e41bf4bdd9ab05ea4c6905bae5d19971960.tar.gz bcm5719-llvm-03b42e41bf4bdd9ab05ea4c6905bae5d19971960.zip |
Remove every uses of getGlobalContext() in LLVM (but the C API)
At the same time, fixes InstructionsTest::CastInst unittest: yes
you can leave the IR in an invalid state and exit when you don't
destroy the context (like the global one), no longer now.
This is the first part of http://reviews.llvm.org/D19094
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266379
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/bugpoint/bugpoint.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llc/llc.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/lli/lli.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-as/llvm-as.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-dis/llvm-dis.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-extract/llvm-extract.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-jitlistener/llvm-jitlistener.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-link/llvm-link.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-profdata/llvm-profdata.cpp | 7 | ||||
-rw-r--r-- | llvm/tools/llvm-split/llvm-split.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-stress/llvm-stress.cpp | 5 | ||||
-rw-r--r-- | llvm/tools/lto/lto.cpp | 3 | ||||
-rw-r--r-- | llvm/tools/opt/opt.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/verify-uselistorder/verify-uselistorder.cpp | 2 |
16 files changed, 21 insertions, 20 deletions
diff --git a/llvm/tools/bugpoint/bugpoint.cpp b/llvm/tools/bugpoint/bugpoint.cpp index 48f30e6709f..272aca51148 100644 --- a/llvm/tools/bugpoint/bugpoint.cpp +++ b/llvm/tools/bugpoint/bugpoint.cpp @@ -143,7 +143,7 @@ int main(int argc, char **argv) { sys::SetInterruptFunction(BugpointInterruptFunction); #endif - LLVMContext& Context = getGlobalContext(); + LLVMContext Context; // If we have an override, set it and then track the triple we want Modules // to use. if (!OverrideTriple.empty()) { diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp index 55f458e6be3..5ad86e07469 100644 --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -187,7 +187,7 @@ int main(int argc, char **argv) { // Enable debug stream buffering. EnableDebugBuffering = true; - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. // Initialize targets first, so that --version shows registered targets. diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp index 9fa2e77f60f..581a11b14dd 100644 --- a/llvm/tools/lli/lli.cpp +++ b/llvm/tools/lli/lli.cpp @@ -385,7 +385,7 @@ int main(int argc, char **argv, char * const *envp) { sys::PrintStackTraceOnErrorSignal(); PrettyStackTraceProgram X(argc, argv); - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; atexit(do_shutdown); // Call llvm_shutdown() on exit. // If we have a native target, initialize it to ensure it is linked in and diff --git a/llvm/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp b/llvm/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp index b4024bcaa99..52deca6e9cd 100644 --- a/llvm/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp +++ b/llvm/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp @@ -53,7 +53,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { // parsed is always null terminated. std::unique_ptr<MemoryBuffer> MemBuf = MemoryBuffer::getMemBufferCopy(Input); SMDiagnostic Err; - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; std::unique_ptr<Module> M; if (setjmp(JmpBuf)) diff --git a/llvm/tools/llvm-as/llvm-as.cpp b/llvm/tools/llvm-as/llvm-as.cpp index 1e795083992..ff9c4436ec1 100644 --- a/llvm/tools/llvm-as/llvm-as.cpp +++ b/llvm/tools/llvm-as/llvm-as.cpp @@ -91,7 +91,7 @@ int main(int argc, char **argv) { // Print a stack trace if we signal out. sys::PrintStackTraceOnErrorSignal(); PrettyStackTraceProgram X(argc, argv); - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, "llvm .ll -> .bc assembler\n"); diff --git a/llvm/tools/llvm-dis/llvm-dis.cpp b/llvm/tools/llvm-dis/llvm-dis.cpp index 9fdfcd4256c..092a5f87351 100644 --- a/llvm/tools/llvm-dis/llvm-dis.cpp +++ b/llvm/tools/llvm-dis/llvm-dis.cpp @@ -137,7 +137,7 @@ int main(int argc, char **argv) { sys::PrintStackTraceOnErrorSignal(); PrettyStackTraceProgram X(argc, argv); - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. Context.setDiagnosticHandler(diagnosticHandler, argv[0]); diff --git a/llvm/tools/llvm-extract/llvm-extract.cpp b/llvm/tools/llvm-extract/llvm-extract.cpp index 1da456d33f5..b37b8989a04 100644 --- a/llvm/tools/llvm-extract/llvm-extract.cpp +++ b/llvm/tools/llvm-extract/llvm-extract.cpp @@ -105,7 +105,7 @@ int main(int argc, char **argv) { sys::PrintStackTraceOnErrorSignal(); PrettyStackTraceProgram X(argc, argv); - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, "llvm extractor\n"); diff --git a/llvm/tools/llvm-jitlistener/llvm-jitlistener.cpp b/llvm/tools/llvm-jitlistener/llvm-jitlistener.cpp index af1a59bdbd3..9e1886ef80b 100644 --- a/llvm/tools/llvm-jitlistener/llvm-jitlistener.cpp +++ b/llvm/tools/llvm-jitlistener/llvm-jitlistener.cpp @@ -105,8 +105,6 @@ unsigned int GetNewMethodID(void) { class JitEventListenerTest { protected: void InitEE(const std::string &IRFile) { - LLVMContext &Context = getGlobalContext(); - // If we have a native target, initialize it to ensure it is linked in and // usable by the JIT. InitializeNativeTarget(); diff --git a/llvm/tools/llvm-link/llvm-link.cpp b/llvm/tools/llvm-link/llvm-link.cpp index 729f8fd6449..7d02425adb8 100644 --- a/llvm/tools/llvm-link/llvm-link.cpp +++ b/llvm/tools/llvm-link/llvm-link.cpp @@ -331,7 +331,7 @@ int main(int argc, char **argv) { sys::PrintStackTraceOnErrorSignal(); PrettyStackTraceProgram X(argc, argv); - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; Context.setDiagnosticHandler(diagnosticHandlerWithContext, nullptr, true); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 58b28196b53..f2d2976d9d7 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -1020,7 +1020,7 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { if (error(BufferOrErr.getError(), Filename)) return; - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; Expected<std::unique_ptr<Binary>> BinaryOrErr = createBinary( BufferOrErr.get()->getMemBufferRef(), NoLLVMBitcode ? nullptr : &Context); if (!BinaryOrErr) { diff --git a/llvm/tools/llvm-profdata/llvm-profdata.cpp b/llvm/tools/llvm-profdata/llvm-profdata.cpp index 046e82fa6ed..f8489cccef0 100644 --- a/llvm/tools/llvm-profdata/llvm-profdata.cpp +++ b/llvm/tools/llvm-profdata/llvm-profdata.cpp @@ -164,9 +164,9 @@ static void mergeSampleProfile(const WeightedFileVector &Inputs, auto Writer = std::move(WriterOrErr.get()); StringMap<FunctionSamples> ProfileMap; SmallVector<std::unique_ptr<sampleprof::SampleProfileReader>, 5> Readers; + LLVMContext Context; for (const auto &Input : Inputs) { - auto ReaderOrErr = - SampleProfileReader::create(Input.Filename, getGlobalContext()); + auto ReaderOrErr = SampleProfileReader::create(Input.Filename, Context); if (std::error_code EC = ReaderOrErr.getError()) exitWithErrorCode(EC, Input.Filename); @@ -365,7 +365,8 @@ static int showSampleProfile(std::string Filename, bool ShowCounts, bool ShowAllFunctions, std::string ShowFunction, raw_fd_ostream &OS) { using namespace sampleprof; - auto ReaderOrErr = SampleProfileReader::create(Filename, getGlobalContext()); + LLVMContext Context; + auto ReaderOrErr = SampleProfileReader::create(Filename, Context); if (std::error_code EC = ReaderOrErr.getError()) exitWithErrorCode(EC, Filename); diff --git a/llvm/tools/llvm-split/llvm-split.cpp b/llvm/tools/llvm-split/llvm-split.cpp index 010b1eb7320..024363547f9 100644 --- a/llvm/tools/llvm-split/llvm-split.cpp +++ b/llvm/tools/llvm-split/llvm-split.cpp @@ -41,7 +41,7 @@ static cl::opt<bool> cl::desc("Split without externalizing locals")); int main(int argc, char **argv) { - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; SMDiagnostic Err; cl::ParseCommandLineOptions(argc, argv, "LLVM module splitter\n"); diff --git a/llvm/tools/llvm-stress/llvm-stress.cpp b/llvm/tools/llvm-stress/llvm-stress.cpp index 99d2afdcd30..d4549e5d95e 100644 --- a/llvm/tools/llvm-stress/llvm-stress.cpp +++ b/llvm/tools/llvm-stress/llvm-stress.cpp @@ -43,6 +43,8 @@ static cl::opt<std::string> OutputFilename("o", cl::desc("Override output filename"), cl::value_desc("filename")); +static LLVMContext Context; + namespace cl { template <> class parser<Type*> final : public basic_parser<Type*> { public: @@ -50,7 +52,6 @@ public: // Parse options as IR types. Return true on error. bool parse(Option &O, StringRef, StringRef Arg, Type *&Value) { - auto &Context = getGlobalContext(); if (Arg == "half") Value = Type::getHalfTy(Context); else if (Arg == "fp128") Value = Type::getFP128Ty(Context); else if (Arg == "x86_fp80") Value = Type::getX86_FP80Ty(Context); @@ -687,7 +688,7 @@ int main(int argc, char **argv) { cl::ParseCommandLineOptions(argc, argv, "llvm codegen stress-tester\n"); llvm_shutdown_obj Y; - auto M = make_unique<Module>("/tmp/autogen.bc", getGlobalContext()); + auto M = make_unique<Module>("/tmp/autogen.bc", Context); Function *F = GenEmptyFunction(M.get()); // Pick an initial seed value diff --git a/llvm/tools/lto/lto.cpp b/llvm/tools/lto/lto.cpp index e22b198b3e1..5a179728e7c 100644 --- a/llvm/tools/lto/lto.cpp +++ b/llvm/tools/lto/lto.cpp @@ -101,7 +101,8 @@ static void lto_initialize() { InitializeAllAsmPrinters(); InitializeAllDisassemblers(); - LTOContext = &getGlobalContext(); + static LLVMContext Context; + LTOContext = &Context; LTOContext->setDiagnosticHandler(diagnosticHandler, nullptr, true); initialized = true; } diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp index a27ce735b53..ca3ab8a49ab 100644 --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -316,7 +316,7 @@ int main(int argc, char **argv) { EnableDebugBuffering = true; llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; InitializeAllTargets(); InitializeAllTargetMCs(); diff --git a/llvm/tools/verify-uselistorder/verify-uselistorder.cpp b/llvm/tools/verify-uselistorder/verify-uselistorder.cpp index c3fec1326ac..a2f80996416 100644 --- a/llvm/tools/verify-uselistorder/verify-uselistorder.cpp +++ b/llvm/tools/verify-uselistorder/verify-uselistorder.cpp @@ -525,7 +525,7 @@ int main(int argc, char **argv) { EnableDebugBuffering = true; llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. - LLVMContext &Context = getGlobalContext(); + LLVMContext Context; cl::ParseCommandLineOptions(argc, argv, "llvm tool to verify use-list order\n"); |