![]() |
mutable
A Database System for Research and Fast Prototyping
|
#include <WasmDSL.hpp>
Public Member Functions | |
::wasm::Block * | set_active_block (::wasm::Block *block) |
Sets the new active ::wasm::Block and returns the previously active ::wasm::Block . | |
::wasm::Function * | set_active_function (::wasm::Function *fn) |
Sets the new active ::wasm::Function and returns the previously active ::wasm::Function . | |
void | emit_return () |
An unsafe, i.e. | |
template<typename T , std::size_t L> | |
void | emit_return (PrimitiveExpr< T, L > expr) |
An unsafe, i.e. | |
template<typename T , std::size_t L> | |
void | emit_return (Expr< T, L > expr) |
An unsafe, i.e. | |
void | emit_break (std::size_t level=1) |
Emit an unconditional break, breaking level levels. | |
void | emit_break (PrimitiveExpr< bool, 1 > cond, std::size_t level=1) |
Emit a conditional break, breaking if cond is true and breaking level levels. | |
void | emit_continue (std::size_t level=1) |
Emit an unconditional continue, continuing level levels above. | |
void | emit_continue (PrimitiveExpr< bool, 1 > cond, std::size_t level=1) |
Emit an conditional continue, continuing level levels above if cond evaluates to true and the original continue condition evaluates to true . | |
template<typename T , std::size_t L> | |
PrimitiveExpr< T, L > | emit_select (PrimitiveExpr< bool, 1 > cond, PrimitiveExpr< T, L > tru, PrimitiveExpr< T, L > fals) |
template<typename T , std::size_t L> | |
Expr< T, L > | emit_select (PrimitiveExpr< bool, 1 > cond, Expr< T, L > tru, Expr< T, L > fals) |
PrimitiveExpr< T, L > | emit_select (PrimitiveExpr< bool, L > cond, PrimitiveExpr< T, L > tru, PrimitiveExpr< T, L > fals) |
Expr< T, L > | emit_select (PrimitiveExpr< bool, L > cond, Expr< T, L > tru, Expr< T, L > fals) |
template<typename T , std::size_t L, std::size_t M> requires (L > 1) | |
and (L *sizeof(T)<=16) and(M > 0) and(M< | |
Selects lanes of first and second in byte granularity depending on the indices specified by indices . | |
M | sizeof (T)> emit_shuffle_bytes(PrimitiveExpr< T |
template<typename T , std::size_t L, std::size_t M> requires (L > 1) | |
and (L *sizeof(T)<=16) and(M > 0) and(is_pow_2(M)) and(M *sizeof(T)< | |
Selects lanes of first and second in lane granularity depending on the indices specified by indices . | |
M | emit_shuffle_lanes (PrimitiveExpr< T, L > first, PrimitiveExpr< T, L > second, const std::array< uint8_t, M > &indices) |
template<typename T , std::size_t L, std::size_t M> requires (L > 1) | |
and (L *sizeof(T)<=16) and(M > 0) and(M< | |
Selects lanes of first and second in byte granularity depending on the indices specified by indices . | |
M | sizeof (T)> emit_shuffle_bytes(Expr< T |
template<typename T , std::size_t L, std::size_t M> requires (L > 1) | |
and (L *sizeof(T)<=16) and(M > 0) and(is_pow_2(M)) and(M *sizeof(T)< | |
Selects lanes of first and second in lane granularity depending on the indices specified by indices . | |
M | emit_shuffle_lanes (Expr< T, L > first, Expr< T, L > second, const std::array< uint8_t, M > &indices) |
void | emit_global (::wasm::Name name, bool is_mutable, Us... inits) |
void | emit_global (const std::array<::wasm::Name, 1 > &names, bool is_mutable, Us... inits) |
template<dsl_primitive T, std::size_t L = 1, std::size_t N, dsl_primitive... Us> requires requires (Us... us) { { make_literal<T, L>(us...) } -> std::same_as<std::array<::wasm::Literal, N>>; } | |
void | emit_global (const std::array<::wasm::Name, N > &names, bool is_mutable, Us... inits) |
template<dsl_pointer_to_primitive T, std::size_t L = 1> | |
void | emit_global (::wasm::Name name, bool is_mutable, uint32_t init) |
template<typename T , std::size_t L = 1> requires (L * sizeof(T) <= 16) | |
PrimitiveExpr< T, L > | get_global (const char *name) |
void | emit_import (const char *extern_name, const char *intern_name=nullptr) |
void | emit_function_import (const char *name) |
void | emit_function_export (const char *name) |
Add function name as export. | |
template<typename ReturnType , typename... ParamTypes, std::size_t... ParamLs> requires std::is_void_v<ReturnType> | |
void | emit_call (const char *fn, PrimitiveExpr< ParamTypes, ParamLs >... args) |
template<typename ReturnType , std::size_t ReturnL = 1, typename... ParamTypes, std::size_t... ParamLs> requires dsl_primitive<ReturnType> | |
or dsl_pointer_to_primitive< ReturnType > PrimitiveExpr< ReturnType, ReturnL > | emit_call (const char *fn, PrimitiveExpr< ParamTypes, ParamLs >... args) |
template<std::size_t L> | |
void | emit_insist (PrimitiveExpr< bool, L > cond, const char *filename, unsigned line, const char *msg) |
template<> | |
void | emit_insist (PrimitiveExpr< bool, 1 > cond, const char *filename, unsigned line, const char *msg) |
void | emit_throw (exception::exception_t type, const char *filename, unsigned line, const char *msg) |
const std::tuple< const char *, unsigned, const char * > & | get_message (std::size_t idx) const |
template<class C , typename... Args> | |
C & | add_garbage_collected_data (void *handle, Args... args) |
Adds and returns an instance of. | |
::wasm::ModuleRunner::ExternalInterface * | get_mock_interface (::wasm::GlobalValueSet imports={}) |
::wasm::ModuleRunner | instantiate (::wasm::GlobalValueSet imports={}) |
Create an instance of this module. | |
void | set_feature (::wasm::FeatureSet feature, bool value) |
std::pair< uint8_t *, std::size_t > | binary () |
Returns the binary representation of module_ in a freshly allocated memory. | |
template<std::size_t L = 1> requires (L > 0) | |
and (L<=16) LocalBit< L > allocate_bit() | |
void | push_branch_targets (::wasm::Name brk, ::wasm::Name continu) |
void | push_branch_targets (::wasm::Name brk, ::wasm::Name continu, PrimitiveExpr< bool, 1 > condition) |
branch_target_t | pop_branch_targets () |
const branch_target_t & | current_branch_targets () const |
void | dump (std::ostream &out) const |
void | dump () const |
void | dump_all (std::ostream &out) |
void | dump_all () |
Static Public Member Functions | |
static void | Init () |
static void | Dispose () |
static Module & | Get () |
static unsigned | ID () |
Returns the ID of the current module. | |
static std::string | Unique_Block_Name (std::string prefix="block") |
Returns a unique block name in the current module. | |
static std::string | Unique_Function_Name (std::string prefix="function") |
Returns a unique function name in the current module. | |
static std::string | Unique_Global_Name (std::string prefix="global") |
Returns a unique global name in the current module. | |
static std::string | Unique_If_Name (std::string prefix="if") |
Returns a unique if name in the current module. | |
static std::string | Unique_Loop_Name (std::string prefix="loop") |
Returns a unique loop name in the current module. | |
::wasm::Builder & | Builder () |
Returns the expression builder of the current module. | |
::wasm::Block & | Block () |
Returns the currently active block. | |
::wasm::Function & | Function () |
Returns the currently active function. | |
static memory::AddressSpace & | Memory () |
Returns the virtual address space. | |
static Allocator & | Allocator () |
Returns the allocator. | |
static bool | Validate (bool verbose=true, bool global=true) |
Validates that the module is well-formed. | |
static void | Optimize (int optimization_level) |
Optimizes the module with the optimization level set to level . | |
Data Fields | |
template<typename T , std::size_t L> requires (PrimitiveExpr<int8_t, L> e) | |
and { e.template to<int_t<sizeof(T)>, L>() | |
Add function name with type T as import. | |
M L | first |
M L PrimitiveExpr< T, L > | second |
M L PrimitiveExpr< T, L > const std::array< uint8_t, M > & | indices |
M L Expr< T, L > | second |
M L Expr< T, L > const std::array< uint8_t, M > & | indices |
Private Member Functions | |
Module () | |
Module (const Module &)=delete | |
void | create_local_bitmap_stack () |
void | create_local_bitvector_stack () |
void | dispose_local_bitmap_stack () |
void | dispose_local_bitvector_stack () |
Private Attributes | |
unsigned | id_ |
| |
unsigned | next_block_id_ = 0 |
| |
unsigned | next_function_id_ = 0 |
| |
unsigned | next_global_id_ = 0 |
| |
unsigned | next_if_id_ = 0 |
| |
unsigned | next_loop_id_ = 0 |
| |
::wasm::Module | module_ |
| |
::wasm::Builder | builder_ |
| |
::wasm::Block * | active_block_ = nullptr |
| |
::wasm::Function * | active_function_ = nullptr |
| |
::wasm::Memory * | memory_ = nullptr |
| |
std::unique_ptr< std::pair< memory::AddressSpace, memory::Memory > > | vm_ |
| |
std::unique_ptr< Allocator > | allocator_ |
| |
std::vector< branch_target_t > | branch_target_stack_ |
| |
std::vector< std::tuple< const char *, unsigned, const char * > > | messages_ |
| |
std::unique_ptr<::wasm::ModuleRunner::ExternalInterface > | interface_ |
| |
std::vector< std::vector< LocalBitmap * > > | local_bitmaps_stack_ |
| |
std::vector< std::vector< LocalBitvector * > > | local_bitvectors_stack_ |
| |
std::unordered_map< void *, std::unique_ptr< GarbageCollectedData > > | garbage_collected_data_ |
| |
Static Private Attributes | |
static std::atomic_uint | NEXT_MODULE_ID_ = 0 |
| |
static thread_local std::unique_ptr< Module > | the_module_ |
Friends | |
struct | Block |
struct | BlockUser |
template<typename > | |
struct | Function |
template<typename , std::size_t > | |
struct | PrimitiveExpr |
| |
template<typename , VariableKind , bool , std::size_t > | |
class | detail::variable_storage |
template<std::size_t > | |
struct | LocalBit |
struct | Allocator |
template<typename > | |
struct | invoke_v8 |
std::ostream & | operator<< (std::ostream &out, const Module &M) |
Definition at line 643 of file WasmDSL.hpp.
|
private |
Definition at line 330 of file WasmDSL.cpp.
References builder_, id_, memory_, module_, m::WasmEngine::WASM_MAX_MEMORY, and m::WasmEngine::WASM_PAGE_SIZE.
|
privatedelete |
|
inline |
Adds and returns an instance of.
C,which | will be created by calling its ctor with an GarbageCollectedData&&instance and the forwarded \p args, to thisModule`s garbage collection using the unique caller handle handle . |
Definition at line 916 of file WasmDSL.hpp.
References args.
Referenced by m::wasm::like(), m::wasm::like_contains(), m::wasm::strncmp(), and m::wasm::strncpy().
|
static |
Returns the allocator.
Selects lanes of first
and second
in lane granularity depending on the indices specified by indices
.
Indices i
in the range [0, L) select the i
-th lane of first
, indices i
in the range [L, 2 * L) select the i-L
-th lane of second
, indices outside of these ranges result in undefined values.
Selects lanes of first
and second
in lane granularity depending on the indices specified by indices
.
Indices i
in the range [0, L) select the i
-th lane of first
, indices i
in the range [L, 2 * L) select the i-L
-th lane of second
, indices outside of these ranges result in undefined values.
Selects lanes of first
and second
in byte granularity depending on the indices specified by indices
.
Indices i
in the range [0, L * sizeof(T)) select the i
-th lane of first
, indices i
in the range [L * sizeof(T), 2 * L * sizeof(T)) select the i-(L * sizeof(T))
-th lane of second
, indices outside of these ranges result in undefined values.
References m::wasm::L.
Selects lanes of first
and second
in byte granularity depending on the indices specified by indices
.
Indices i
in the range [0, L * sizeof(T)) select the i
-th lane of first
, indices i
in the range [L * sizeof(T), 2 * L * sizeof(T)) select the i-(L * sizeof(T))
-th lane of second
, indices outside of these ranges result in undefined values.
References m::wasm::L.
std::pair< uint8_t *, std::size_t > Module::binary | ( | ) |
Returns the binary representation of module_
in a freshly allocated memory.
The caller must dispose of this memory.
Definition at line 385 of file WasmDSL.cpp.
References binary(), and module_.
Referenced by binary(), m::wasm::detail::create_js_debug_script(), and m::wasm::detail::instantiate().
|
inlinestatic |
Returns the currently active block.
Definition at line 742 of file WasmDSL.hpp.
References M_notnull.
|
inlinestatic |
Returns the expression builder of the current module.
Definition at line 739 of file WasmDSL.hpp.
Referenced by m::wasm::If::~If().
|
inlineprivate |
Definition at line 6606 of file WasmDSL.hpp.
|
inlineprivate |
Definition at line 6611 of file WasmDSL.hpp.
|
inline |
Definition at line 961 of file WasmDSL.hpp.
|
inlinestatic |
Definition at line 710 of file WasmDSL.hpp.
References M_insist.
|
inlineprivate |
Definition at line 6616 of file WasmDSL.hpp.
References M_insist.
|
inlineprivate |
Definition at line 6626 of file WasmDSL.hpp.
References m::wasm::bitmask(), and M_insist.
|
inline |
|
inline |
Definition at line 990 of file WasmDSL.hpp.
|
inline |
|
inline |
Definition at line 993 of file WasmDSL.hpp.
|
inline |
Emit a conditional break, breaking if cond
is true
and breaking level
levels.
Definition at line 6759 of file WasmDSL.hpp.
References M_insist.
|
inline |
Emit an unconditional break, breaking level
levels.
Definition at line 6750 of file WasmDSL.hpp.
References M_insist.
|
inline |
Definition at line 6716 of file WasmDSL.hpp.
Referenced by index_scan_codegen_compilation(), index_scan_codegen_hybrid(), and write_result_set().
|
inline |
Definition at line 6725 of file WasmDSL.hpp.
void Module::emit_continue | ( | PrimitiveExpr< bool, 1 > | cond, |
std::size_t | level = 1 |
||
) |
Emit an conditional continue, continuing level
levels above if cond
evaluates to true
and the original continue condition evaluates to true
.
Definition at line 476 of file WasmDSL.cpp.
References branch_target_stack_, emit_continue(), IF, and M_insist.
void Module::emit_continue | ( | std::size_t | level = 1 | ) |
Emit an unconditional continue, continuing level
levels above.
Definition at line 453 of file WasmDSL.cpp.
References active_block_, branch_target_stack_, m::wasm::BREAK(), builder_, ELSE, Get(), IF, M_insist, and module_.
Referenced by emit_continue().
|
inline |
Add function name
as export.
Definition at line 886 of file WasmDSL.hpp.
|
inline |
Definition at line 879 of file WasmDSL.hpp.
Referenced by m::wasm::detail::create_env().
|
inline |
Definition at line 849 of file WasmDSL.hpp.
References m::init().
|
inline |
Definition at line 824 of file WasmDSL.hpp.
|
inline |
Definition at line 833 of file WasmDSL.hpp.
|
inline |
Definition at line 838 of file WasmDSL.hpp.
|
inline |
Definition at line 865 of file WasmDSL.hpp.
References M_CONSTEXPR_COND, M_notnull, m::T(), and m::wasm::value.
Referenced by m::wasm::detail::create_env().
void Module::emit_insist | ( | PrimitiveExpr< bool, 1 > | cond, |
const char * | filename, | ||
unsigned | line, | ||
const char * | msg | ||
) |
void Module::emit_insist | ( | PrimitiveExpr< bool, L > | cond, |
const char * | filename, | ||
unsigned | line, | ||
const char * | msg | ||
) |
|
inline |
An unsafe, i.e.
statically-**un**typed, version of Function::emit_return()
.
Definition at line 6732 of file WasmDSL.hpp.
An unsafe, i.e.
statically-**un**typed, version of Function::emit_return(T&&)
.
Definition at line 6744 of file WasmDSL.hpp.
References m::wasm::value.
|
inline |
An unsafe, i.e.
statically-**un**typed, version of Function::emit_return(T&&)
.
Definition at line 6738 of file WasmDSL.hpp.
References m::wasm::value.
Expr< T, L > m::wasm::Module::emit_select | ( | PrimitiveExpr< bool, 1 > | cond, |
Expr< T, L > | tru, | ||
Expr< T, L > | fals | ||
) |
Definition at line 6800 of file WasmDSL.hpp.
PrimitiveExpr< T, L > m::wasm::Module::emit_select | ( | PrimitiveExpr< bool, 1 > | cond, |
PrimitiveExpr< T, L > | tru, | ||
PrimitiveExpr< T, L > | fals | ||
) |
Definition at line 6768 of file WasmDSL.hpp.
References m::wasm::L, m::wasm::referenced_bits(), m::T(), and m::wasm::vectors().
Expr< T, L > m::wasm::Module::emit_select | ( | PrimitiveExpr< bool, L > | cond, |
Expr< T, L > | tru, | ||
Expr< T, L > | fals | ||
) |
Definition at line 6859 of file WasmDSL.hpp.
PrimitiveExpr< T, L > m::wasm::Module::emit_select | ( | PrimitiveExpr< bool, L > | cond, |
PrimitiveExpr< T, L > | tru, | ||
PrimitiveExpr< T, L > | fals | ||
) |
Definition at line 6819 of file WasmDSL.hpp.
References m::wasm::L, m::wasm::mask, m::wasm::referenced_bits(), m::T(), and m::wasm::vectors().
M m::wasm::Module::emit_shuffle_lanes | ( | Expr< T, L > | first, |
Expr< T, L > | second, | ||
const std::array< uint8_t, M > & | indices | ||
) |
Definition at line 6957 of file WasmDSL.hpp.
References m::wasm::indices.
M m::wasm::Module::emit_shuffle_lanes | ( | PrimitiveExpr< T, L > | first, |
PrimitiveExpr< T, L > | second, | ||
const std::array< uint8_t, M > & | indices | ||
) |
Definition at line 6907 of file WasmDSL.hpp.
References m::wasm::indices, m::wasm::L, M_CONSTEXPR_COND, m::wasm::referenced_bits(), and m::T().
void Module::emit_throw | ( | exception::exception_t | type, |
const char * | filename, | ||
unsigned | line, | ||
const char * | msg | ||
) |
Definition at line 441 of file WasmDSL.cpp.
References active_block_, args, builder_, and messages_.
|
inlinestatic |
Returns the currently active function.
Definition at line 745 of file WasmDSL.hpp.
References M_notnull.
|
inlinestatic |
Definition at line 714 of file WasmDSL.hpp.
References M_insist.
Referenced by m::wasm::detail::_throw(), m::wasm::detail::create_env(), m::wasm::detail::create_js_debug_script(), emit_continue(), get_base_address(), get_num_rows(), index_scan_codegen_compilation(), index_scan_codegen_hybrid(), m::wasm::detail::insist(), m::wasm::insist_interpreter(), m::wasm::detail::instantiate(), m::wasm::like(), m::wasm::like_contains(), Memory(), Optimize(), LinearAllocator::perform_pre_allocations(), m::wasm::strncmp(), m::wasm::strncpy(), m::wasm::throw_interpreter(), Validate(), and write_result_set().
|
inline |
Definition at line 6709 of file WasmDSL.hpp.
Referenced by get_base_address(), and get_num_rows().
|
inline |
Definition at line 907 of file WasmDSL.hpp.
Referenced by m::wasm::detail::_throw(), m::wasm::detail::insist(), m::wasm::insist_interpreter(), and m::wasm::throw_interpreter().
wasm::ModuleRunner::ExternalInterface * Module::get_mock_interface | ( | ::wasm::GlobalValueSet | imports = {} | ) |
Definition at line 360 of file WasmDSL.cpp.
References interface_, and Memory().
|
inlinestatic |
Returns the ID of the current module.
Definition at line 721 of file WasmDSL.hpp.
Referenced by m::wasm::detail::create_env(), index_scan_codegen_compilation(), index_scan_codegen_hybrid(), m::wasm::detail::index_seek(), m::wasm::detail::index_sequential_scan(), Memory(), m::wasm::detail::read_result_set(), m::wasm::detail::run_inspector(), and write_result_set().
|
inlinestatic |
Definition at line 706 of file WasmDSL.hpp.
References M_insist.
|
inline |
Create an instance of this module.
Can be used for interpretation and debugging.
Definition at line 928 of file WasmDSL.hpp.
|
static |
Returns the virtual address space.
Definition at line 485 of file WasmDSL.cpp.
References m::memory::Allocator::allocate(), m::Catalog::allocator(), m::Catalog::Get(), Get(), m::WasmEngine::Get_Wasm_Context_By_ID(), m::WasmEngine::Has_Wasm_Context(), ID(), m::memory::Memory::map(), m::memory::AddressSpace::size(), m::WasmEngine::WasmContext::vm, vm_, and m::WasmEngine::WASM_MAX_MEMORY.
Referenced by get_mock_interface().
|
static |
Optimizes the module with the optimization level set to level
.
Definition at line 375 of file WasmDSL.cpp.
|
inline |
Definition at line 955 of file WasmDSL.hpp.
|
inline |
Definition at line 949 of file WasmDSL.hpp.
|
inline |
Definition at line 6973 of file WasmDSL.hpp.
|
inline |
Sets the new active ::wasm::Block
and returns the previously active ::wasm::Block
.
Definition at line 760 of file WasmDSL.hpp.
|
inline |
Sets the new active ::wasm::Function
and returns the previously active ::wasm::Function
.
Definition at line 762 of file WasmDSL.hpp.
|
inline |
Definition at line 933 of file WasmDSL.hpp.
References m::wasm::value.
M m::wasm::Module::sizeof | ( | T | ) |
M m::wasm::Module::sizeof | ( | T | ) |
|
inlinestatic |
Returns a unique block name in the current module.
Definition at line 724 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique function name in the current module.
Definition at line 726 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique global name in the current module.
Definition at line 730 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique if name in the current module.
Definition at line 734 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique loop name in the current module.
Definition at line 736 of file WasmDSL.hpp.
References m::wasm::unique().
Validates that the module is well-formed.
Definition at line 367 of file WasmDSL.cpp.
|
friend |
Definition at line 652 of file WasmDSL.hpp.
Referenced by m::wasm::Buffer< IsGlobal >::Buffer(), m::wasm::ChainedHashTable< IsGlobal >::clear(), m::wasm::Buffer< IsGlobal >::consume(), m::wasm::ChainedHashTable< IsGlobal >::create_predication_dummy(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::create_predication_dummy(), m::wasm::ChainedHashTable< IsGlobal >::dummy_entry(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::dummy_entry(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::emplace(), m::wasm::ChainedHashTable< IsGlobal >::emplace_without_rehashing(), index_scan_codegen_compilation(), index_scan_codegen_hybrid(), index_scan_codegen_interpretation(), m::wasm::like(), m::wasm::like_contains(), m::wasm::like_prefix(), m::wasm::like_suffix(), m::wasm::ExprCompiler::operator()(), m::wasm::buffer_swap_proxy_t< IsGlobal >::operator()(), m::wasm::ChainedHashTable< IsGlobal >::rehash(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::rehash(), m::wasm::Buffer< IsGlobal >::setup(), m::wasm::ChainedHashTable< IsGlobal >::setup(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::setup(), m::wasm::Buffer< IsGlobal >::teardown(), m::wasm::ChainedHashTable< IsGlobal >::teardown(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::teardown(), m::wasm::ChainedHashTable< IsGlobal >::try_emplace(), m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::try_emplace(), m::wasm::Buffer< IsGlobal >::~Buffer(), m::wasm::ChainedHashTable< IsGlobal >::~ChainedHashTable(), and m::wasm::OpenAddressingHashTable< IsGlobal, ValueInPlace >::~OpenAddressingHashTable().
Definition at line 646 of file WasmDSL.hpp.
Referenced by m::wasm::If::~If().
Definition at line 647 of file WasmDSL.hpp.
|
friend |
Definition at line 650 of file WasmDSL.hpp.
Definition at line 648 of file WasmDSL.hpp.
Definition at line 653 of file WasmDSL.hpp.
Definition at line 651 of file WasmDSL.hpp.
|
friend |
Definition at line 965 of file WasmDSL.hpp.
|
friend |
Constructs an empty
PrimitiveExpr
, for whichoperator bool()
returnsfalse
.
Definition at line 649 of file WasmDSL.hpp.
|
private |
the currently active Binaryen block
Definition at line 676 of file WasmDSL.hpp.
Referenced by emit_continue(), and emit_throw().
|
private |
the currently active Binaryen function
Definition at line 678 of file WasmDSL.hpp.
|
private |
the allocator
Definition at line 684 of file WasmDSL.hpp.
Add function name
with type T
as import.
Definition at line 785 of file WasmDSL.hpp.
|
private |
stack of Binaryen branch targets
Definition at line 686 of file WasmDSL.hpp.
Referenced by emit_continue().
|
private |
the Binaryen expression builder for the
module_
Definition at line 674 of file WasmDSL.hpp.
Referenced by emit_continue(), emit_throw(), and Module().
M L m::wasm::Module::first |
Definition at line 798 of file WasmDSL.hpp.
|
private |
mapping from handles to garbage collected data
Definition at line 696 of file WasmDSL.hpp.
|
private |
M L PrimitiveExpr<T, L> const std::array<uint8_t, M>& m::wasm::Module::indices |
Definition at line 799 of file WasmDSL.hpp.
Definition at line 813 of file WasmDSL.hpp.
|
private |
this module's interface, if any
Definition at line 690 of file WasmDSL.hpp.
Referenced by get_mock_interface().
|
private |
the per-function stacks of local bitmaps; used for local scalar boolean variables and NULL bits
Definition at line 692 of file WasmDSL.hpp.
|
private |
the per-function stacks of local bitvectors; used for local vectorial boolean variables and NULL bits
Definition at line 694 of file WasmDSL.hpp.
|
private |
|
private |
filename, line, and an optional message for each emitted insist or exception throw
Definition at line 688 of file WasmDSL.hpp.
Referenced by emit_insist(), and emit_throw().
|
private |
the Binaryen Wasm module
Definition at line 672 of file WasmDSL.hpp.
Referenced by binary(), emit_continue(), Module(), Optimize(), and Validate().
|
private |
counter to make block names unique
Definition at line 662 of file WasmDSL.hpp.
|
private |
counter to make function names unique
Definition at line 664 of file WasmDSL.hpp.
|
private |
counter to make global variable names unique
Definition at line 666 of file WasmDSL.hpp.
|
private |
counter to make if names unique
Definition at line 668 of file WasmDSL.hpp.
|
private |
counter to make loop names unique
Definition at line 670 of file WasmDSL.hpp.
|
inlinestaticprivate |
counter to make block names unique
Definition at line 657 of file WasmDSL.hpp.
M L PrimitiveExpr<T, L> m::wasm::Module::second |
Definition at line 798 of file WasmDSL.hpp.
|
staticprivate |
Definition at line 700 of file WasmDSL.hpp.
|
private |
the virtual address space and its backed memory; only set if no
WasmContext
was created
Definition at line 682 of file WasmDSL.hpp.
Referenced by Memory().