![]() |
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, uint64_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, tothisModule`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 391 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 6606 of file WasmDSL.hpp.
|
inlineprivate |
Definition at line 6611 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 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 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 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 482 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 459 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 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 447 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 6709 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 366 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 491 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 381 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 6973 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 373 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
WasmContextwas created
Definition at line 683 of file WasmDSL.hpp.
Referenced by Memory().