| //===-------- OrcCBindingsStack.cpp - Orc JIT stack for C bindings --------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "OrcCBindingsStack.h" |
| |
| #include "llvm/ExecutionEngine/Orc/OrcTargetSupport.h" |
| #include "llvm/Support/Debug.h" |
| #include "llvm/Support/DynamicLibrary.h" |
| #include <cstdio> |
| #include <system_error> |
| |
| using namespace llvm; |
| |
| std::unique_ptr<OrcCBindingsStack::CompileCallbackMgr> |
| OrcCBindingsStack::createCompileCallbackMgr(Triple T) { |
| switch (T.getArch()) { |
| default: return nullptr; |
| |
| case Triple::x86_64: { |
| typedef orc::LocalJITCompileCallbackManager<orc::OrcX86_64> CCMgrT; |
| return llvm::make_unique<CCMgrT>(0); |
| } |
| } |
| } |
| |
| OrcCBindingsStack::IndirectStubsManagerBuilder |
| OrcCBindingsStack::createIndirectStubsMgrBuilder(Triple T) { |
| switch (T.getArch()) { |
| default: return nullptr; |
| |
| case Triple::x86_64: |
| return [](){ |
| return llvm::make_unique< |
| orc::LocalIndirectStubsManager<orc::OrcX86_64>>(); |
| }; |
| } |
| } |