diff options
Diffstat (limited to 'gnu/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp')
| -rw-r--r-- | gnu/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/gnu/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp b/gnu/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp deleted file mode 100644 index d952d1be70d..00000000000 --- a/gnu/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp +++ /dev/null @@ -1,44 +0,0 @@ -//===--------------- IRCompileLayer.cpp - IR Compiling Layer --------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "llvm/ExecutionEngine/Orc/IRCompileLayer.h" - -namespace llvm { -namespace orc { - -IRCompileLayer::IRCompileLayer(ExecutionSession &ES, ObjectLayer &BaseLayer, - CompileFunction Compile) - : IRLayer(ES), BaseLayer(BaseLayer), Compile(std::move(Compile)) {} - -void IRCompileLayer::setNotifyCompiled(NotifyCompiledFunction NotifyCompiled) { - std::lock_guard<std::mutex> Lock(IRLayerMutex); - this->NotifyCompiled = std::move(NotifyCompiled); -} - -void IRCompileLayer::emit(MaterializationResponsibility R, - ThreadSafeModule TSM) { - assert(TSM.getModule() && "Module must not be null"); - - if (auto Obj = Compile(*TSM.getModule())) { - { - std::lock_guard<std::mutex> Lock(IRLayerMutex); - if (NotifyCompiled) - NotifyCompiled(R.getVModuleKey(), std::move(TSM)); - else - TSM = ThreadSafeModule(); - } - BaseLayer.emit(std::move(R), std::move(*Obj)); - } else { - R.failMaterialization(); - getExecutionSession().reportError(Obj.takeError()); - } -} - -} // End namespace orc. -} // End namespace llvm. |
