diff options
author | Lang Hames <lhames@gmail.com> | 2017-08-15 18:10:19 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2017-08-15 18:10:19 +0000 |
commit | 359983bdd38843c49a889ddabb28b4d69ccb5eb3 (patch) | |
tree | dba5534d5211d5d38322c4aecac7abfeaa8815a0 /llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp | |
parent | 504d4e24034be74dea5a7d51fb67810a35c2556a (diff) | |
download | llvm-359983bdd38843c49a889ddabb28b4d69ccb5eb3.zip llvm-359983bdd38843c49a889ddabb28b4d69ccb5eb3.tar.gz llvm-359983bdd38843c49a889ddabb28b4d69ccb5eb3.tar.bz2 |
[ORC] Add case statements for AArch64 to the local stub and callback manager
creation functions.
This should allow lli to lazily execute code using OrcLazyJIT on AArch64.
llvm-svn: 310938
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp index e3a4568..68397be 100644 --- a/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp +++ b/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp @@ -28,6 +28,11 @@ createLocalCompileCallbackManager(const Triple &T, switch (T.getArch()) { default: return nullptr; + case Triple::aarch64: { + typedef orc::LocalJITCompileCallbackManager<orc::OrcAArch64> CCMgrT; + return llvm::make_unique<CCMgrT>(ErrorHandlerAddress); + } + case Triple::x86: { typedef orc::LocalJITCompileCallbackManager<orc::OrcI386> CCMgrT; return llvm::make_unique<CCMgrT>(ErrorHandlerAddress); @@ -42,6 +47,7 @@ createLocalCompileCallbackManager(const Triple &T, return llvm::make_unique<CCMgrT>(ErrorHandlerAddress); } } + } } @@ -50,6 +56,12 @@ createLocalIndirectStubsManagerBuilder(const Triple &T) { switch (T.getArch()) { default: return nullptr; + case Triple::aarch64: + return [](){ + return llvm::make_unique< + orc::LocalIndirectStubsManager<orc::OrcAArch64>>(); + }; + case Triple::x86: return [](){ return llvm::make_unique< @@ -68,6 +80,7 @@ createLocalIndirectStubsManagerBuilder(const Triple &T) { orc::LocalIndirectStubsManager<orc::OrcX86_64_SysV>>(); }; } + } } |