From a2b30fe5aa415c7a0851d661d6196be76be5695a Mon Sep 17 00:00:00 2001 From: Denys Zadorozhnyi Date: Tue, 19 Dec 2023 18:00:21 +0200 Subject: [PATCH] refactor: move module specific code to separate module in frontend-wasm --- frontend-wasm/src/code_translator/mod.rs | 8 ++++---- .../src/code_translator/tests_unsupported.rs | 8 ++++---- frontend-wasm/src/component/mod.rs | 0 frontend-wasm/src/lib.rs | 11 ++++------- .../src/{module_env.rs => module/environ.rs} | 2 +- .../src/{ => module}/func_translation_state.rs | 4 ++-- frontend-wasm/src/{ => module}/func_translator.rs | 6 +++--- .../src/{ => module}/function_builder_ext.rs | 0 .../src/{module_translator.rs => module/mod.rs} | 11 +++++++---- frontend-wasm/src/{ => module}/sections_translator.rs | 2 +- frontend-wasm/src/translation_utils.rs | 2 +- frontend-wasm/src/wasm_types.rs | 2 +- 12 files changed, 28 insertions(+), 28 deletions(-) create mode 100644 frontend-wasm/src/component/mod.rs rename frontend-wasm/src/{module_env.rs => module/environ.rs} (99%) rename frontend-wasm/src/{ => module}/func_translation_state.rs (99%) rename frontend-wasm/src/{ => module}/func_translator.rs (97%) rename frontend-wasm/src/{ => module}/function_builder_ext.rs (100%) rename frontend-wasm/src/{module_translator.rs => module/mod.rs} (95%) rename frontend-wasm/src/{ => module}/sections_translator.rs (99%) diff --git a/frontend-wasm/src/code_translator/mod.rs b/frontend-wasm/src/code_translator/mod.rs index 766d2a942..a268d2a98 100644 --- a/frontend-wasm/src/code_translator/mod.rs +++ b/frontend-wasm/src/code_translator/mod.rs @@ -17,10 +17,10 @@ use std::collections::{hash_map, HashMap}; use std::u64; use crate::error::{WasmError, WasmResult}; -use crate::func_translation_state::ControlStackFrame; -use crate::func_translation_state::{ElseData, FuncTranslationState}; -use crate::function_builder_ext::FunctionBuilderExt; -use crate::module_env::ModuleInfo; +use crate::module::environ::ModuleInfo; +use crate::module::func_translation_state::ControlStackFrame; +use crate::module::func_translation_state::{ElseData, FuncTranslationState}; +use crate::module::function_builder_ext::FunctionBuilderExt; use crate::ssa::Variable; use crate::unsupported_diag; use crate::wasm_types::{BlockType, GlobalIndex}; diff --git a/frontend-wasm/src/code_translator/tests_unsupported.rs b/frontend-wasm/src/code_translator/tests_unsupported.rs index cb0047eac..7cf942b67 100644 --- a/frontend-wasm/src/code_translator/tests_unsupported.rs +++ b/frontend-wasm/src/code_translator/tests_unsupported.rs @@ -8,10 +8,10 @@ use wasmparser::MemArg; use wasmparser::Operator; use wasmparser::Operator::*; -use crate::func_translation_state::FuncTranslationState; -use crate::function_builder_ext::FunctionBuilderContext; -use crate::function_builder_ext::FunctionBuilderExt; -use crate::module_env::ModuleInfo; +use crate::module::environ::ModuleInfo; +use crate::module::func_translation_state::FuncTranslationState; +use crate::module::function_builder_ext::FunctionBuilderContext; +use crate::module::function_builder_ext::FunctionBuilderExt; use crate::test_utils::test_diagnostics; use super::translate_operator; diff --git a/frontend-wasm/src/component/mod.rs b/frontend-wasm/src/component/mod.rs new file mode 100644 index 000000000..e69de29bb diff --git a/frontend-wasm/src/lib.rs b/frontend-wasm/src/lib.rs index af7ff1414..3a94f9807 100644 --- a/frontend-wasm/src/lib.rs +++ b/frontend-wasm/src/lib.rs @@ -5,15 +5,12 @@ #![deny(missing_docs)] #![deny(rustdoc::broken_intra_doc_links)] +mod component; +mod module; + mod code_translator; mod config; mod error; -mod func_translation_state; -mod func_translator; -mod function_builder_ext; -mod module_env; -mod module_translator; -mod sections_translator; mod ssa; mod translation_utils; mod wasm_types; @@ -23,4 +20,4 @@ mod test_utils; pub use self::config::WasmTranslationConfig; pub use self::error::WasmError; -pub use self::module_translator::translate_module; +pub use self::module::translate_module; diff --git a/frontend-wasm/src/module_env.rs b/frontend-wasm/src/module/environ.rs similarity index 99% rename from frontend-wasm/src/module_env.rs rename to frontend-wasm/src/module/environ.rs index c7b0d142d..f094310d6 100644 --- a/frontend-wasm/src/module_env.rs +++ b/frontend-wasm/src/module/environ.rs @@ -1,7 +1,7 @@ //! Wasm to Miden IR translation environment use crate::error::{WasmError, WasmResult}; -use crate::func_translator::FuncTranslator; +use crate::module::func_translator::FuncTranslator; use crate::translation_utils::sig_from_funct_type; use crate::wasm_types::{ DataSegment, DataSegmentIndex, DefinedFuncIndex, FuncIndex, Global, GlobalIndex, Memory, diff --git a/frontend-wasm/src/func_translation_state.rs b/frontend-wasm/src/module/func_translation_state.rs similarity index 99% rename from frontend-wasm/src/func_translation_state.rs rename to frontend-wasm/src/module/func_translation_state.rs index 725f0d767..16862b6c5 100644 --- a/frontend-wasm/src/func_translation_state.rs +++ b/frontend-wasm/src/module/func_translation_state.rs @@ -7,8 +7,8 @@ use crate::{ error::{WasmError, WasmResult}, - function_builder_ext::FunctionBuilderExt, - module_env::ModuleInfo, + module::environ::ModuleInfo, + module::function_builder_ext::FunctionBuilderExt, translation_utils::sig_from_funct_type, wasm_types::{BlockType, FuncIndex}, }; diff --git a/frontend-wasm/src/func_translator.rs b/frontend-wasm/src/module/func_translator.rs similarity index 97% rename from frontend-wasm/src/func_translator.rs rename to frontend-wasm/src/module/func_translator.rs index c60aa3870..f372481c5 100644 --- a/frontend-wasm/src/func_translator.rs +++ b/frontend-wasm/src/module/func_translator.rs @@ -8,9 +8,9 @@ use crate::code_translator::translate_operator; use crate::error::WasmResult; -use crate::func_translation_state::FuncTranslationState; -use crate::function_builder_ext::{FunctionBuilderContext, FunctionBuilderExt}; -use crate::module_env::ModuleInfo; +use crate::module::environ::ModuleInfo; +use crate::module::func_translation_state::FuncTranslationState; +use crate::module::function_builder_ext::{FunctionBuilderContext, FunctionBuilderExt}; use crate::ssa::Variable; use crate::translation_utils::emit_zero; use crate::wasm_types::valtype_to_type; diff --git a/frontend-wasm/src/function_builder_ext.rs b/frontend-wasm/src/module/function_builder_ext.rs similarity index 100% rename from frontend-wasm/src/function_builder_ext.rs rename to frontend-wasm/src/module/function_builder_ext.rs diff --git a/frontend-wasm/src/module_translator.rs b/frontend-wasm/src/module/mod.rs similarity index 95% rename from frontend-wasm/src/module_translator.rs rename to frontend-wasm/src/module/mod.rs index 626e1a7e5..14048e518 100644 --- a/frontend-wasm/src/module_translator.rs +++ b/frontend-wasm/src/module/mod.rs @@ -1,9 +1,12 @@ -//! Translation skeleton that traverses the whole WebAssembly module and call helper functions -//! to deal with each part of it. +pub(crate) mod environ; +pub(crate) mod func_translation_state; +mod func_translator; +pub(crate) mod function_builder_ext; +mod sections_translator; use crate::error::WasmResult; -use crate::module_env::ModuleEnvironment; -use crate::sections_translator::{ +use crate::module::environ::ModuleEnvironment; +use crate::module::sections_translator::{ parse_data_section, parse_element_section, parse_function_section, parse_global_section, parse_import_section, parse_memory_section, parse_name_section, parse_type_section, }; diff --git a/frontend-wasm/src/sections_translator.rs b/frontend-wasm/src/module/sections_translator.rs similarity index 99% rename from frontend-wasm/src/sections_translator.rs rename to frontend-wasm/src/module/sections_translator.rs index ab4ed4831..f2424128c 100644 --- a/frontend-wasm/src/sections_translator.rs +++ b/frontend-wasm/src/module/sections_translator.rs @@ -3,7 +3,7 @@ use crate::{ error::{WasmError, WasmResult}, - module_env::ModuleEnvironment, + module::environ::ModuleEnvironment, unsupported_diag, wasm_types::{ convert_func_type, convert_global_type, DataSegment, DataSegmentIndex, DataSegmentOffset, diff --git a/frontend-wasm/src/translation_utils.rs b/frontend-wasm/src/translation_utils.rs index 0115e0e2a..d136f2c1c 100644 --- a/frontend-wasm/src/translation_utils.rs +++ b/frontend-wasm/src/translation_utils.rs @@ -4,7 +4,7 @@ use miden_diagnostics::SourceSpan; use miden_hir::{AbiParam, CallConv, InstBuilder, Linkage, Signature, Value}; use miden_hir_type::{FunctionType, Type}; -use crate::function_builder_ext::FunctionBuilderExt; +use crate::module::function_builder_ext::FunctionBuilderExt; /// Emit instructions to produce a zero value in the given type. pub fn emit_zero(ty: &Type, builder: &mut FunctionBuilderExt) -> Value { diff --git a/frontend-wasm/src/wasm_types.rs b/frontend-wasm/src/wasm_types.rs index a63e33379..eed5a7dea 100644 --- a/frontend-wasm/src/wasm_types.rs +++ b/frontend-wasm/src/wasm_types.rs @@ -8,7 +8,7 @@ use miden_hir_type::Type; use crate::error::WasmError; use crate::error::WasmResult; -use crate::module_env::ModuleInfo; +use crate::module::environ::ModuleInfo; use crate::unsupported_diag; /// Index type of a function (imported or defined) inside the WebAssembly module.