diff options
Diffstat (limited to 'backend/src/backend/program.cpp')
-rw-r--r-- | backend/src/backend/program.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp index c06ae5a1..c37c5951 100644 --- a/backend/src/backend/program.cpp +++ b/backend/src/backend/program.cpp @@ -1104,22 +1104,22 @@ EXTEND_QUOTE: return NULL; #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 39 - llvm::LLVMContext& c = GBEGetLLVMContext(); + llvm::LLVMContext *c = new llvm::LLVMContext; #else - llvm::LLVMContext& c = llvm::getGlobalContext(); + llvm::LLVMContext *c = &llvm::getGlobalContext(); #endif // Get the module from its file llvm::SMDiagnostic errDiag; #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 36 - llvm::Module *module = parseIRFile(fileName, errDiag, c).release(); + llvm::Module *module = parseIRFile(fileName, errDiag, *c).release(); #else - llvm::Module *module = ParseIRFile(fileName, errDiag, c); + llvm::Module *module = ParseIRFile(fileName, errDiag, *c); #endif int optLevel = 1; //module will be delete in programCleanLlvmResource - p = gbe_program_new_from_llvm(deviceID, module, &c, NULL, + p = gbe_program_new_from_llvm(deviceID, module, c, NULL, string_size, err, err_size, optLevel, NULL); if (OCL_OUTPUT_BUILD_LOG && err && *err_size) llvm::errs() << err << "\n"; @@ -1152,11 +1152,10 @@ EXTEND_QUOTE: gbe_program p; acquireLLVMContextLock(); - //FIXME: if use new allocated context to link two modules there would be context mismatch - //for some functions, so we use global context now, need switch to new context later. + llvm::Module * out_module; #if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR >= 39 - llvm::LLVMContext* llvm_ctx = &GBEGetLLVMContext(); + llvm::LLVMContext* llvm_ctx = new llvm::LLVMContext; #else llvm::LLVMContext* llvm_ctx = &llvm::getGlobalContext(); #endif |