/src/WasmEdge/lib/llvm/data.h
Line | Count | Source |
1 | | // SPDX-License-Identifier: Apache-2.0 |
2 | | // SPDX-FileCopyrightText: 2019-2024 Second State INC |
3 | | #pragma once |
4 | | |
5 | | #include "llvm.h" |
6 | | #include "llvm/data.h" |
7 | | |
8 | | struct WasmEdge::LLVM::Data::DataContext { |
9 | | #if LLVM_VERSION_MAJOR >= 21 |
10 | | LLVM::Context LLContext = LLVM::Context::create(); |
11 | | LLVM::Context getLLContext() noexcept { return LLContext; } |
12 | | LLVM::OrcThreadSafeContext getTSContext() noexcept { |
13 | | return LLVM::OrcThreadSafeContext(LLContext); |
14 | | } |
15 | | #else |
16 | | LLVM::OrcThreadSafeContext TSContext; |
17 | 6.00k | LLVM::Context getLLContext() noexcept { return TSContext.getContext(); } |
18 | 0 | LLVM::OrcThreadSafeContext getTSContext() noexcept { |
19 | 0 | return std::move(TSContext); |
20 | 0 | } |
21 | | #endif |
22 | | LLVM::Module LLModule; |
23 | | LLVM::TargetMachine TM; |
24 | 2.00k | DataContext() noexcept : LLModule(getLLContext(), "wasm") {} |
25 | | }; |