| 203 | } |
| 204 | |
| 205 | Status UseJITLinkIfEnabled(llvm::orc::LLJITBuilder& jit_builder) { |
| 206 | static auto maybe_use_jit_link = ::arrow::internal::GetEnvVar("GANDIVA_USE_JIT_LINK"); |
| 207 | if (maybe_use_jit_link.ok()) { |
| 208 | ARROW_ASSIGN_OR_RAISE(static auto memory_manager, CreateMemmoryManager()); |
| 209 | # if LLVM_VERSION_MAJOR >= 21 |
| 210 | jit_builder.setObjectLinkingLayerCreator([&](llvm::orc::ExecutionSession& ES) { |
| 211 | return std::make_unique<llvm::orc::ObjectLinkingLayer>(ES, *memory_manager); |
| 212 | }); |
| 213 | # else |
| 214 | jit_builder.setObjectLinkingLayerCreator( |
| 215 | [&](llvm::orc::ExecutionSession& ES, const llvm::Triple& TT) { |
| 216 | return std::make_unique<llvm::orc::ObjectLinkingLayer>(ES, *memory_manager); |
| 217 | }); |
| 218 | # endif |
| 219 | } |
| 220 | return Status::OK(); |
| 221 | } |
| 222 | #endif |
| 223 | |
| 224 | Result<std::unique_ptr<llvm::orc::LLJIT>> BuildJIT( |