![]() |
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 644 of file WasmDSL.hpp.
|
private |
Definition at line 334 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 917 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 389 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 743 of file WasmDSL.hpp.
References M_notnull.
|
inlinestatic |
Returns the expression builder of the current module.
Definition at line 740 of file WasmDSL.hpp.
Referenced by m::wasm::If::~If().
|
inlineprivate |
Definition at line 6607 of file WasmDSL.hpp.
|
inlineprivate |
Definition at line 6612 of file WasmDSL.hpp.
|
inline |
Definition at line 962 of file WasmDSL.hpp.
|
inlinestatic |
Definition at line 711 of file WasmDSL.hpp.
References M_insist.
|
inlineprivate |
Definition at line 6617 of file WasmDSL.hpp.
References M_insist.
|
inlineprivate |
Definition at line 6627 of file WasmDSL.hpp.
References m::wasm::bitmask(), and M_insist.
|
inline |
|
inline |
Definition at line 991 of file WasmDSL.hpp.
|
inline |
|
inline |
Definition at line 994 of file WasmDSL.hpp.
|
inline |
Emit a conditional break, breaking if cond
is true
and breaking level
levels.
Definition at line 6760 of file WasmDSL.hpp.
References M_insist.
|
inline |
Emit an unconditional break, breaking level
levels.
Definition at line 6751 of file WasmDSL.hpp.
References M_insist.
|
inline |
Definition at line 6717 of file WasmDSL.hpp.
Referenced by index_scan_codegen_compilation(), index_scan_codegen_hybrid(), and write_result_set().
|
inline |
Definition at line 6726 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 480 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 457 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 887 of file WasmDSL.hpp.
|
inline |
Definition at line 880 of file WasmDSL.hpp.
Referenced by m::wasm::detail::create_env().
|
inline |
Definition at line 850 of file WasmDSL.hpp.
References m::init().
|
inline |
Definition at line 825 of file WasmDSL.hpp.
|
inline |
Definition at line 834 of file WasmDSL.hpp.
|
inline |
Definition at line 839 of file WasmDSL.hpp.
|
inline |
Definition at line 866 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 6733 of file WasmDSL.hpp.
An unsafe, i.e.
statically-**un**typed, version of Function::emit_return(T&&)
.
Definition at line 6745 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 6739 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 6801 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 6769 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 6860 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 6820 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 6958 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 6908 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 445 of file WasmDSL.cpp.
References active_block_, args, builder_, and messages_.
|
inlinestatic |
Returns the currently active function.
Definition at line 746 of file WasmDSL.hpp.
References M_notnull.
|
inlinestatic |
Definition at line 715 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_array_index_base_address(), get_array_index_num_entries(), 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 6710 of file WasmDSL.hpp.
Referenced by get_array_index_base_address(), get_array_index_num_entries(), get_base_address(), and get_num_rows().
|
inline |
Definition at line 908 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 364 of file WasmDSL.cpp.
References interface_, and Memory().
|
inlinestatic |
Returns the ID of the current module.
Definition at line 722 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 707 of file WasmDSL.hpp.
References M_insist.
|
inline |
Create an instance of this module.
Can be used for interpretation and debugging.
Definition at line 929 of file WasmDSL.hpp.
|
static |
Returns the virtual address space.
Definition at line 489 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 379 of file WasmDSL.cpp.
|
inline |
Definition at line 956 of file WasmDSL.hpp.
|
inline |
Definition at line 950 of file WasmDSL.hpp.
|
inline |
Definition at line 6974 of file WasmDSL.hpp.
|
inline |
Sets the new active ::wasm::Block
and returns the previously active ::wasm::Block
.
Definition at line 761 of file WasmDSL.hpp.
|
inline |
Sets the new active ::wasm::Function
and returns the previously active ::wasm::Function
.
Definition at line 763 of file WasmDSL.hpp.
|
inline |
Definition at line 934 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 725 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique function name in the current module.
Definition at line 727 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique global name in the current module.
Definition at line 731 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique if name in the current module.
Definition at line 735 of file WasmDSL.hpp.
References m::wasm::unique().
|
inlinestatic |
Returns a unique loop name in the current module.
Definition at line 737 of file WasmDSL.hpp.
References m::wasm::unique().
Validates that the module is well-formed.
Definition at line 371 of file WasmDSL.cpp.
|
friend |
Definition at line 653 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 647 of file WasmDSL.hpp.
Referenced by m::wasm::If::~If().
Definition at line 648 of file WasmDSL.hpp.
|
friend |
Definition at line 651 of file WasmDSL.hpp.
Definition at line 649 of file WasmDSL.hpp.
Definition at line 654 of file WasmDSL.hpp.
Definition at line 652 of file WasmDSL.hpp.
|
friend |
Definition at line 966 of file WasmDSL.hpp.
|
friend |
Constructs an empty
PrimitiveExpr
, for whichoperator bool()
returnsfalse
.
Definition at line 650 of file WasmDSL.hpp.
|
private |
the currently active Binaryen block
Definition at line 677 of file WasmDSL.hpp.
Referenced by emit_continue(), and emit_throw().
|
private |
the currently active Binaryen function
Definition at line 679 of file WasmDSL.hpp.
|
private |
the allocator
Definition at line 685 of file WasmDSL.hpp.
Add function name
with type T
as import.
Definition at line 786 of file WasmDSL.hpp.
|
private |
stack of Binaryen branch targets
Definition at line 687 of file WasmDSL.hpp.
Referenced by emit_continue().
|
private |
the Binaryen expression builder for the
module_
Definition at line 675 of file WasmDSL.hpp.
Referenced by emit_continue(), emit_throw(), and Module().
M L m::wasm::Module::first |
Definition at line 799 of file WasmDSL.hpp.
|
private |
mapping from handles to garbage collected data
Definition at line 697 of file WasmDSL.hpp.
|
private |
M L PrimitiveExpr<T, L> const std::array<uint8_t, M>& m::wasm::Module::indices |
Definition at line 800 of file WasmDSL.hpp.
Definition at line 814 of file WasmDSL.hpp.
|
private |
this module's interface, if any
Definition at line 691 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 693 of file WasmDSL.hpp.
|
private |
the per-function stacks of local bitvectors; used for local vectorial boolean variables and NULL bits
Definition at line 695 of file WasmDSL.hpp.
|
private |
|
private |
filename, line, and an optional message for each emitted insist or exception throw
Definition at line 689 of file WasmDSL.hpp.
Referenced by emit_insist(), and emit_throw().
|
private |
the Binaryen Wasm module
Definition at line 673 of file WasmDSL.hpp.
Referenced by binary(), emit_continue(), Module(), Optimize(), and Validate().
|
private |
counter to make block names unique
Definition at line 663 of file WasmDSL.hpp.
|
private |
counter to make function names unique
Definition at line 665 of file WasmDSL.hpp.
|
private |
counter to make global variable names unique
Definition at line 667 of file WasmDSL.hpp.
|
private |
counter to make if names unique
Definition at line 669 of file WasmDSL.hpp.
|
private |
counter to make loop names unique
Definition at line 671 of file WasmDSL.hpp.
|
inlinestaticprivate |
counter to make block names unique
Definition at line 658 of file WasmDSL.hpp.
M L PrimitiveExpr<T, L> m::wasm::Module::second |
Definition at line 799 of file WasmDSL.hpp.
|
staticprivate |
Definition at line 701 of file WasmDSL.hpp.
|
private |
the virtual address space and its backed memory; only set if no
WasmContext
was created
Definition at line 683 of file WasmDSL.hpp.
Referenced by Memory().