From 242e5e910470db19dbd7cb7775ecc1acf9c7c77a Mon Sep 17 00:00:00 2001 From: Robin Freyler Date: Sun, 6 Oct 2024 20:07:31 +0200 Subject: [PATCH] Clean-up Wasmi engine imports and exports (#1228) * clean-up Wasmi engine imports and exports * fix doc test imports * apply rustfmt --- crates/wasmi/src/engine/code_map.rs | 6 ++-- crates/wasmi/src/engine/executor/cache.rs | 3 +- crates/wasmi/src/engine/executor/instr_ptr.rs | 2 +- crates/wasmi/src/engine/executor/instrs.rs | 3 +- .../src/engine/executor/instrs/binary.rs | 5 ++- .../src/engine/executor/instrs/branch.rs | 20 ++++++------ .../wasmi/src/engine/executor/instrs/call.rs | 2 +- .../src/engine/executor/instrs/comparison.rs | 4 +-- .../src/engine/executor/instrs/conversion.rs | 4 +-- .../wasmi/src/engine/executor/instrs/copy.rs | 6 ++-- .../src/engine/executor/instrs/global.rs | 4 +-- .../wasmi/src/engine/executor/instrs/load.rs | 8 ++--- .../src/engine/executor/instrs/memory.rs | 12 ++++--- .../src/engine/executor/instrs/return_.rs | 7 ++-- .../src/engine/executor/instrs/select.rs | 6 ++-- .../wasmi/src/engine/executor/instrs/store.rs | 7 ++-- .../wasmi/src/engine/executor/instrs/table.rs | 16 ++++------ .../wasmi/src/engine/executor/instrs/unary.rs | 4 +-- crates/wasmi/src/engine/executor/mod.rs | 10 ++---- .../wasmi/src/engine/executor/stack/calls.rs | 7 ++-- .../wasmi/src/engine/executor/stack/values.rs | 3 +- crates/wasmi/src/engine/mod.rs | 12 ++----- crates/wasmi/src/engine/resumable.rs | 13 ++++++-- .../src/engine/translator/control_frame.rs | 8 ++--- .../src/engine/translator/instr_encoder.rs | 32 +++++++++---------- crates/wasmi/src/engine/translator/labels.rs | 2 +- crates/wasmi/src/engine/translator/mod.rs | 25 +++++++++------ .../wasmi/src/engine/translator/provider.rs | 6 ++-- .../src/engine/translator/relink_result.rs | 6 ++-- .../src/engine/translator/stack/locals.rs | 2 +- .../wasmi/src/engine/translator/stack/mod.rs | 2 +- .../src/engine/translator/stack/provider.rs | 5 +-- .../engine/translator/stack/register_alloc.rs | 6 ++-- .../src/engine/translator/tests/driver.rs | 3 +- .../src/engine/translator/tests/fuzz/mod.rs | 6 ++-- .../wasmi/src/engine/translator/tests/mod.rs | 2 +- .../tests/op/binary/f32_copysign.rs | 2 +- .../tests/op/binary/f64_copysign.rs | 2 +- .../src/engine/translator/tests/op/block.rs | 6 ++-- .../src/engine/translator/tests/op/br.rs | 5 +-- .../src/engine/translator/tests/op/br_if.rs | 6 ++-- .../engine/translator/tests/op/br_table.rs | 2 +- .../translator/tests/op/call/imported.rs | 2 +- .../translator/tests/op/call/indirect.rs | 4 +-- .../src/engine/translator/tests/op/cmp_br.rs | 2 +- .../src/engine/translator/tests/op/copy.rs | 2 +- .../engine/translator/tests/op/global_get.rs | 2 +- .../engine/translator/tests/op/global_set.rs | 2 +- .../src/engine/translator/tests/op/if_.rs | 6 ++-- .../translator/tests/op/local_preserve.rs | 6 ++-- .../engine/translator/tests/op/local_set.rs | 6 ++-- .../src/engine/translator/tests/op/loop_.rs | 2 +- .../tests/op/return_call/imported.rs | 2 +- .../tests/op/return_call/indirect.rs | 2 +- .../src/engine/translator/tests/wasm_type.rs | 2 +- crates/wasmi/src/engine/translator/utils.rs | 2 +- crates/wasmi/src/engine/translator/visit.rs | 7 ++-- .../src/engine/translator/visit_register.rs | 2 +- crates/wasmi/src/lib.rs | 3 +- 59 files changed, 154 insertions(+), 192 deletions(-) diff --git a/crates/wasmi/src/engine/code_map.rs b/crates/wasmi/src/engine/code_map.rs index 7ea8b03ca5..8c9a3bc90f 100644 --- a/crates/wasmi/src/engine/code_map.rs +++ b/crates/wasmi/src/engine/code_map.rs @@ -15,10 +15,8 @@ use super::{ use crate::{ collections::arena::{Arena, ArenaIndex}, core::{TrapCode, UntypedVal}, - engine::{ - bytecode::{index::InternalFunc, Instruction}, - utils::unreachable_unchecked, - }, + engine::utils::unreachable_unchecked, + ir::{index::InternalFunc, Instruction}, module::{FuncIdx, ModuleHeader}, store::{Fuel, FuelError}, Config, diff --git a/crates/wasmi/src/engine/executor/cache.rs b/crates/wasmi/src/engine/executor/cache.rs index 9a6c77d413..2476f5d3e4 100644 --- a/crates/wasmi/src/engine/executor/cache.rs +++ b/crates/wasmi/src/engine/executor/cache.rs @@ -1,7 +1,8 @@ use crate::{ core::UntypedVal, - engine::{bytecode::index, DedupFuncType}, + engine::DedupFuncType, instance::InstanceEntity, + ir::index, memory::DataSegment, module::DEFAULT_MEMORY_INDEX, store::StoreInner, diff --git a/crates/wasmi/src/engine/executor/instr_ptr.rs b/crates/wasmi/src/engine/executor/instr_ptr.rs index 0b056c27ac..1cb033a273 100644 --- a/crates/wasmi/src/engine/executor/instr_ptr.rs +++ b/crates/wasmi/src/engine/executor/instr_ptr.rs @@ -1,4 +1,4 @@ -use crate::engine::bytecode::Instruction; +use crate::ir::Instruction; /// The instruction pointer to the instruction of a function on the call stack. #[derive(Debug, Copy, Clone)] diff --git a/crates/wasmi/src/engine/executor/instrs.rs b/crates/wasmi/src/engine/executor/instrs.rs index afcab0e0a3..875d1e7fb6 100644 --- a/crates/wasmi/src/engine/executor/instrs.rs +++ b/crates/wasmi/src/engine/executor/instrs.rs @@ -3,14 +3,13 @@ use super::{cache::CachedInstance, InstructionPtr, Stack}; use crate::{ core::{hint, TrapCode, UntypedVal}, engine::{ - bytecode::{index, BlockFuel, Const16, Instruction, Reg}, code_map::CodeMap, executor::stack::{CallFrame, FrameRegisters, ValueStack}, utils::unreachable_unchecked, DedupFuncType, EngineFunc, }, - ir::ShiftAmount, + ir::{index, BlockFuel, Const16, Instruction, Reg, ShiftAmount}, memory::DataSegment, store::StoreInner, table::ElementSegment, diff --git a/crates/wasmi/src/engine/executor/instrs/binary.rs b/crates/wasmi/src/engine/executor/instrs/binary.rs index 788ec8a7df..9a48d55fe1 100644 --- a/crates/wasmi/src/engine/executor/instrs/binary.rs +++ b/crates/wasmi/src/engine/executor/instrs/binary.rs @@ -1,14 +1,13 @@ use super::{Executor, UntypedValueExt}; use crate::{ core::{TrapCode, UntypedVal}, - engine::bytecode::{Const16, Reg, Sign}, - ir::ShiftAmount, + ir::{Const16, Reg, ShiftAmount, Sign}, Error, }; use core::num::{NonZeroI32, NonZeroI64, NonZeroU32, NonZeroU64}; #[cfg(doc)] -use crate::engine::bytecode::Instruction; +use crate::ir::Instruction; macro_rules! impl_binary { ( $( (Instruction::$var_name:ident, $fn_name:ident, $op:expr) ),* $(,)? ) => { diff --git a/crates/wasmi/src/engine/executor/instrs/branch.rs b/crates/wasmi/src/engine/executor/instrs/branch.rs index 44bce2a830..124a03c383 100644 --- a/crates/wasmi/src/engine/executor/instrs/branch.rs +++ b/crates/wasmi/src/engine/executor/instrs/branch.rs @@ -1,17 +1,15 @@ use super::Executor; use crate::{ core::UntypedVal, - engine::{ - bytecode::{ - BranchOffset, - BranchOffset16, - Comparator, - ComparatorAndOffset, - Const16, - Instruction, - Reg, - }, - utils::unreachable_unchecked, + engine::utils::unreachable_unchecked, + ir::{ + BranchOffset, + BranchOffset16, + Comparator, + ComparatorAndOffset, + Const16, + Instruction, + Reg, }, }; use core::cmp; diff --git a/crates/wasmi/src/engine/executor/instrs/call.rs b/crates/wasmi/src/engine/executor/instrs/call.rs index 09a20099ce..e8db04a48c 100644 --- a/crates/wasmi/src/engine/executor/instrs/call.rs +++ b/crates/wasmi/src/engine/executor/instrs/call.rs @@ -2,7 +2,6 @@ use super::{Executor, InstructionPtr}; use crate::{ core::TrapCode, engine::{ - bytecode::{index, Instruction, Reg, RegSpan}, code_map::CompiledFuncRef, executor::stack::{CallFrame, FrameParams, ValueStack}, utils::unreachable_unchecked, @@ -10,6 +9,7 @@ use crate::{ FuncParams, }, func::{FuncEntity, HostFuncEntity}, + ir::{index, Instruction, Reg, RegSpan}, store::StoreInner, CallHook, Error, diff --git a/crates/wasmi/src/engine/executor/instrs/comparison.rs b/crates/wasmi/src/engine/executor/instrs/comparison.rs index ced14af0e7..dfe34ce490 100644 --- a/crates/wasmi/src/engine/executor/instrs/comparison.rs +++ b/crates/wasmi/src/engine/executor/instrs/comparison.rs @@ -1,11 +1,11 @@ use super::Executor; use crate::{ core::UntypedVal, - engine::bytecode::{Const16, Reg}, + ir::{Const16, Reg}, }; #[cfg(doc)] -use crate::engine::bytecode::Instruction; +use crate::ir::Instruction; macro_rules! impl_comparison { ( $( (Instruction::$var_name:ident, $fn_name:ident, $op:expr) ),* $(,)? ) => { diff --git a/crates/wasmi/src/engine/executor/instrs/conversion.rs b/crates/wasmi/src/engine/executor/instrs/conversion.rs index 70cb294978..104b1da007 100644 --- a/crates/wasmi/src/engine/executor/instrs/conversion.rs +++ b/crates/wasmi/src/engine/executor/instrs/conversion.rs @@ -1,8 +1,8 @@ use super::Executor; -use crate::{core::UntypedVal, engine::bytecode::Reg, Error}; +use crate::{core::UntypedVal, ir::Reg, Error}; #[cfg(doc)] -use crate::engine::bytecode::Instruction; +use crate::ir::Instruction; macro_rules! impl_conversion_impls { ( $( (Instruction::$var_name:ident, $fn_name:ident, $op:expr) ),* $(,)? ) => { diff --git a/crates/wasmi/src/engine/executor/instrs/copy.rs b/crates/wasmi/src/engine/executor/instrs/copy.rs index 4821fc3a58..76a3461a3c 100644 --- a/crates/wasmi/src/engine/executor/instrs/copy.rs +++ b/crates/wasmi/src/engine/executor/instrs/copy.rs @@ -1,10 +1,8 @@ use super::{Executor, InstructionPtr}; use crate::{ core::UntypedVal, - engine::{ - bytecode::{AnyConst32, Const32, FixedRegSpan, Instruction, Reg, RegSpan}, - utils::unreachable_unchecked, - }, + engine::utils::unreachable_unchecked, + ir::{AnyConst32, Const32, FixedRegSpan, Instruction, Reg, RegSpan}, }; use core::slice; use smallvec::SmallVec; diff --git a/crates/wasmi/src/engine/executor/instrs/global.rs b/crates/wasmi/src/engine/executor/instrs/global.rs index ef0dbf0808..0e6fbaf377 100644 --- a/crates/wasmi/src/engine/executor/instrs/global.rs +++ b/crates/wasmi/src/engine/executor/instrs/global.rs @@ -1,12 +1,12 @@ use super::Executor; use crate::{ core::{hint, UntypedVal}, - engine::bytecode::{index, Const16, Reg}, + ir::{index, Const16, Reg}, store::StoreInner, }; #[cfg(doc)] -use crate::engine::bytecode::Instruction; +use crate::ir::Instruction; impl Executor<'_> { /// Executes an [`Instruction::GlobalGet`]. diff --git a/crates/wasmi/src/engine/executor/instrs/load.rs b/crates/wasmi/src/engine/executor/instrs/load.rs index bbc68ce86d..797d01b2f2 100644 --- a/crates/wasmi/src/engine/executor/instrs/load.rs +++ b/crates/wasmi/src/engine/executor/instrs/load.rs @@ -1,12 +1,8 @@ use super::Executor; use crate::{ core::{TrapCode, UntypedVal}, - engine::{ - bytecode::{Const16, Reg}, - executor::instr_ptr::InstructionPtr, - utils::unreachable_unchecked, - }, - ir::{index::Memory, Instruction}, + engine::{executor::instr_ptr::InstructionPtr, utils::unreachable_unchecked}, + ir::{index::Memory, Const16, Instruction, Reg}, store::StoreInner, Error, }; diff --git a/crates/wasmi/src/engine/executor/instrs/memory.rs b/crates/wasmi/src/engine/executor/instrs/memory.rs index feb08a35f2..c47441dd72 100644 --- a/crates/wasmi/src/engine/executor/instrs/memory.rs +++ b/crates/wasmi/src/engine/executor/instrs/memory.rs @@ -1,12 +1,14 @@ use super::{Executor, InstructionPtr}; use crate::{ core::TrapCode, - engine::{ - bytecode::{index::Data, Const16, Instruction, Reg}, - utils::unreachable_unchecked, - }, + engine::utils::unreachable_unchecked, error::EntityGrowError, - ir::index::Memory, + ir::{ + index::{Data, Memory}, + Const16, + Instruction, + Reg, + }, store::{ResourceLimiterRef, StoreInner}, Error, Store, diff --git a/crates/wasmi/src/engine/executor/instrs/return_.rs b/crates/wasmi/src/engine/executor/instrs/return_.rs index 37b2765790..5d2b798d83 100644 --- a/crates/wasmi/src/engine/executor/instrs/return_.rs +++ b/crates/wasmi/src/engine/executor/instrs/return_.rs @@ -1,11 +1,8 @@ use super::{Executor, InstructionPtr}; use crate::{ core::UntypedVal, - engine::{ - bytecode::{AnyConst32, BoundedRegSpan, Const32, Instruction, Reg, RegSpan}, - executor::stack::FrameRegisters, - utils::unreachable_unchecked, - }, + engine::{executor::stack::FrameRegisters, utils::unreachable_unchecked}, + ir::{AnyConst32, BoundedRegSpan, Const32, Instruction, Reg, RegSpan}, store::StoreInner, }; use core::slice; diff --git a/crates/wasmi/src/engine/executor/instrs/select.rs b/crates/wasmi/src/engine/executor/instrs/select.rs index 41d5249439..4897e7395c 100644 --- a/crates/wasmi/src/engine/executor/instrs/select.rs +++ b/crates/wasmi/src/engine/executor/instrs/select.rs @@ -1,10 +1,8 @@ use super::{Executor, InstructionPtr}; use crate::{ core::UntypedVal, - engine::{ - bytecode::{AnyConst32, Const32, Instruction, Reg}, - utils::unreachable_unchecked, - }, + engine::utils::unreachable_unchecked, + ir::{AnyConst32, Const32, Instruction, Reg}, }; impl<'engine> Executor<'engine> { diff --git a/crates/wasmi/src/engine/executor/instrs/store.rs b/crates/wasmi/src/engine/executor/instrs/store.rs index 41de755bba..4632c5a7f3 100644 --- a/crates/wasmi/src/engine/executor/instrs/store.rs +++ b/crates/wasmi/src/engine/executor/instrs/store.rs @@ -1,11 +1,8 @@ use super::{Executor, InstructionPtr}; use crate::{ core::{TrapCode, UntypedVal}, - engine::{ - bytecode::{Const16, Instruction, Reg}, - utils::unreachable_unchecked, - }, - ir::{index::Memory, AnyConst16}, + engine::utils::unreachable_unchecked, + ir::{index::Memory, AnyConst16, Const16, Instruction, Reg}, store::StoreInner, Error, }; diff --git a/crates/wasmi/src/engine/executor/instrs/table.rs b/crates/wasmi/src/engine/executor/instrs/table.rs index 7af1448832..e9b307b662 100644 --- a/crates/wasmi/src/engine/executor/instrs/table.rs +++ b/crates/wasmi/src/engine/executor/instrs/table.rs @@ -1,16 +1,14 @@ use super::{Executor, InstructionPtr}; use crate::{ core::TrapCode, - engine::{ - bytecode::{ - index::{Elem, Table}, - Const16, - Instruction, - Reg, - }, - utils::unreachable_unchecked, - }, + engine::utils::unreachable_unchecked, error::EntityGrowError, + ir::{ + index::{Elem, Table}, + Const16, + Instruction, + Reg, + }, store::{ResourceLimiterRef, StoreInner}, table::TableEntity, Error, diff --git a/crates/wasmi/src/engine/executor/instrs/unary.rs b/crates/wasmi/src/engine/executor/instrs/unary.rs index 24bf858eb6..fd35f290cf 100644 --- a/crates/wasmi/src/engine/executor/instrs/unary.rs +++ b/crates/wasmi/src/engine/executor/instrs/unary.rs @@ -1,8 +1,8 @@ use super::Executor; -use crate::{core::UntypedVal, engine::bytecode::Reg}; +use crate::{core::UntypedVal, ir::Reg}; #[cfg(doc)] -use crate::engine::bytecode::Instruction; +use crate::ir::Instruction; macro_rules! impl_unary_impls { ( $( (Instruction::$var_name:ident, $fn_name:ident, $op:expr) ),* $(,)? ) => { diff --git a/crates/wasmi/src/engine/executor/mod.rs b/crates/wasmi/src/engine/executor/mod.rs index a90af37eb1..d6858bf5ee 100644 --- a/crates/wasmi/src/engine/executor/mod.rs +++ b/crates/wasmi/src/engine/executor/mod.rs @@ -6,15 +6,9 @@ use self::{ stack::CallFrame, }; use crate::{ - engine::{ - bytecode::{Reg, RegSpan}, - CallParams, - CallResults, - EngineInner, - ResumableCallBase, - ResumableInvocation, - }, + engine::{CallParams, CallResults, EngineInner, ResumableCallBase, ResumableInvocation}, func::HostFuncEntity, + ir::{Reg, RegSpan}, CallHook, Error, Func, diff --git a/crates/wasmi/src/engine/executor/stack/calls.rs b/crates/wasmi/src/engine/executor/stack/calls.rs index f3a6293e08..6baaf14953 100644 --- a/crates/wasmi/src/engine/executor/stack/calls.rs +++ b/crates/wasmi/src/engine/executor/stack/calls.rs @@ -2,17 +2,18 @@ use super::{err_stack_overflow, BaseValueStackOffset, FrameValueStackOffset}; use crate::{ collections::HeadVec, core::TrapCode, - engine::{bytecode::RegSpan, executor::InstructionPtr}, + engine::executor::InstructionPtr, + ir::RegSpan, Instance, }; use std::vec::Vec; #[cfg(doc)] use crate::{ - engine::bytecode::Instruction, - engine::bytecode::Reg, engine::executor::stack::ValueStack, engine::EngineFunc, + ir::Instruction, + ir::Reg, Global, Memory, Table, diff --git a/crates/wasmi/src/engine/executor/stack/values.rs b/crates/wasmi/src/engine/executor/stack/values.rs index 11973b6d06..c82117423f 100644 --- a/crates/wasmi/src/engine/executor/stack/values.rs +++ b/crates/wasmi/src/engine/executor/stack/values.rs @@ -1,7 +1,8 @@ use super::{err_stack_overflow, StackOffsets}; use crate::{ core::{TrapCode, UntypedVal}, - engine::{bytecode::Reg, code_map::CompiledFuncRef}, + engine::code_map::CompiledFuncRef, + ir::Reg, }; use core::{ fmt::{self, Debug}, diff --git a/crates/wasmi/src/engine/mod.rs b/crates/wasmi/src/engine/mod.rs index d9a130f768..3256201f68 100644 --- a/crates/wasmi/src/engine/mod.rs +++ b/crates/wasmi/src/engine/mod.rs @@ -16,10 +16,9 @@ mod utils; mod tests; #[cfg(test)] -use self::bytecode::RegSpan; - +use self::code_map::CompiledFuncRef; #[cfg(test)] -use code_map::CompiledFuncRef; +use crate::{core::UntypedVal, ir::Instruction, ir::RegSpan}; pub(crate) use self::{ block_type::BlockType, @@ -50,7 +49,6 @@ pub use self::{ traits::{CallParams, CallResults}, translator::{Instr, TranslationError}, }; -pub(crate) use crate::ir as bytecode; use crate::{ collections::arena::{ArenaIndex, GuardedEntity}, module::{FuncIdx, ModuleHeader}, @@ -67,12 +65,6 @@ use std::{ }; use wasmparser::{FuncToValidate, FuncValidatorAllocations, ValidatorResources}; -#[cfg(test)] -use self::bytecode::Instruction; - -#[cfg(test)] -use crate::core::UntypedVal; - #[cfg(doc)] use crate::Store; diff --git a/crates/wasmi/src/engine/resumable.rs b/crates/wasmi/src/engine/resumable.rs index 71e9375ff4..3ec3c5a60e 100644 --- a/crates/wasmi/src/engine/resumable.rs +++ b/crates/wasmi/src/engine/resumable.rs @@ -1,5 +1,14 @@ -use super::{bytecode::RegSpan, Func}; -use crate::{engine::Stack, func::CallResultsTuple, AsContextMut, Engine, Error, Val, WasmResults}; +use super::Func; +use crate::{ + engine::Stack, + func::CallResultsTuple, + ir::RegSpan, + AsContextMut, + Engine, + Error, + Val, + WasmResults, +}; use core::{fmt, marker::PhantomData, mem::replace, ops::Deref}; /// Returned by [`Engine`] methods for calling a function in a resumable way. diff --git a/crates/wasmi/src/engine/translator/control_frame.rs b/crates/wasmi/src/engine/translator/control_frame.rs index ac8c311cea..bb98c3ff2f 100644 --- a/crates/wasmi/src/engine/translator/control_frame.rs +++ b/crates/wasmi/src/engine/translator/control_frame.rs @@ -4,12 +4,8 @@ use super::LabelRef; #[cfg(doc)] use super::ValueStack; use crate::{ - engine::{ - bytecode::{BoundedRegSpan, RegSpan}, - BlockType, - Instr, - TranslationError, - }, + engine::{BlockType, Instr, TranslationError}, + ir::{BoundedRegSpan, RegSpan}, Engine, Error, }; diff --git a/crates/wasmi/src/engine/translator/instr_encoder.rs b/crates/wasmi/src/engine/translator/instr_encoder.rs index b901590bcf..82757c1533 100644 --- a/crates/wasmi/src/engine/translator/instr_encoder.rs +++ b/crates/wasmi/src/engine/translator/instr_encoder.rs @@ -12,22 +12,22 @@ use super::{ use crate::{ core::{UntypedVal, ValType, F32}, engine::{ - bytecode::{ - self, - BoundedRegSpan, - BranchOffset, - BranchOffset16, - Comparator, - ComparatorAndOffset, - Const16, - Const32, - Instruction, - Reg, - RegSpan, - }, translator::{stack::RegisterSpace, ValueStack}, FuelCosts, }, + ir::{ + self, + BoundedRegSpan, + BranchOffset, + BranchOffset16, + Comparator, + ComparatorAndOffset, + Const16, + Const32, + Instruction, + Reg, + RegSpan, + }, module::ModuleHeader, Error, }; @@ -39,13 +39,13 @@ use std::vec::{Drain, Vec}; #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct Instr(u32); -impl From for Instr { - fn from(instr: bytecode::Instr) -> Self { +impl From for Instr { + fn from(instr: ir::Instr) -> Self { Self(u32::from(instr)) } } -impl From for bytecode::Instr { +impl From for ir::Instr { fn from(instr: Instr) -> Self { Self::from(instr.0) } diff --git a/crates/wasmi/src/engine/translator/labels.rs b/crates/wasmi/src/engine/translator/labels.rs index 0cc16786e7..46d1411fd0 100644 --- a/crates/wasmi/src/engine/translator/labels.rs +++ b/crates/wasmi/src/engine/translator/labels.rs @@ -1,5 +1,5 @@ use super::Instr; -use crate::{engine::bytecode::BranchOffset, Error}; +use crate::{ir::BranchOffset, Error}; use core::{ fmt::{self, Display}, slice::Iter as SliceIter, diff --git a/crates/wasmi/src/engine/translator/mod.rs b/crates/wasmi/src/engine/translator/mod.rs index 2c2ce215cf..b3c983c325 100644 --- a/crates/wasmi/src/engine/translator/mod.rs +++ b/crates/wasmi/src/engine/translator/mod.rs @@ -38,19 +38,24 @@ pub use self::{ instr_encoder::{Instr, InstrEncoder}, stack::TypedProvider, }; -use super::{ - bytecode::{index, BoundedRegSpan, BranchOffset}, - code_map::CompiledFuncEntity, -}; +use super::code_map::CompiledFuncEntity; use crate::{ core::{TrapCode, Typed, TypedVal, UntypedVal, ValType}, - engine::{ - bytecode::{Const16, Const32, Instruction, Reg, RegSpan, Sign}, - config::FuelCosts, - BlockType, - EngineFunc, + engine::{config::FuelCosts, BlockType, EngineFunc}, + ir::{ + index, + AnyConst16, + BoundedRegSpan, + BranchOffset, + Const16, + Const32, + Instruction, + IntoShiftAmount, + Reg, + RegSpan, + ShiftAmount, + Sign, }, - ir::{AnyConst16, IntoShiftAmount, ShiftAmount}, module::{FuncIdx, FuncTypeIdx, ModuleHeader}, Engine, Error, diff --git a/crates/wasmi/src/engine/translator/provider.rs b/crates/wasmi/src/engine/translator/provider.rs index 1fece98665..fa547cbdfd 100644 --- a/crates/wasmi/src/engine/translator/provider.rs +++ b/crates/wasmi/src/engine/translator/provider.rs @@ -1,9 +1,7 @@ use crate::{ core::UntypedVal, - engine::{ - bytecode::{AnyConst32, Reg}, - translator::TranslationError, - }, + engine::translator::TranslationError, + ir::{AnyConst32, Reg}, Error, }; use std::vec::{Drain, Vec}; diff --git a/crates/wasmi/src/engine/translator/relink_result.rs b/crates/wasmi/src/engine/translator/relink_result.rs index 012ced99e5..21e87b67c4 100644 --- a/crates/wasmi/src/engine/translator/relink_result.rs +++ b/crates/wasmi/src/engine/translator/relink_result.rs @@ -1,8 +1,6 @@ use crate::{ - engine::{ - bytecode::{index, Instruction, Reg, RegSpan, VisitRegs}, - EngineFunc, - }, + engine::EngineFunc, + ir::{index, Instruction, Reg, RegSpan, VisitRegs}, module::ModuleHeader, Engine, Error, diff --git a/crates/wasmi/src/engine/translator/stack/locals.rs b/crates/wasmi/src/engine/translator/stack/locals.rs index 480cdfc020..211c8107cf 100644 --- a/crates/wasmi/src/engine/translator/stack/locals.rs +++ b/crates/wasmi/src/engine/translator/stack/locals.rs @@ -1,4 +1,4 @@ -use crate::{engine::bytecode::Reg, Error}; +use crate::{ir::Reg, Error}; use core::mem; use std::{ collections::{btree_map, BTreeMap}, diff --git a/crates/wasmi/src/engine/translator/stack/mod.rs b/crates/wasmi/src/engine/translator/stack/mod.rs index ad6ed1e20b..b133750907 100644 --- a/crates/wasmi/src/engine/translator/stack/mod.rs +++ b/crates/wasmi/src/engine/translator/stack/mod.rs @@ -13,10 +13,10 @@ use super::{PreservedLocal, TypedVal}; use crate::{ core::UntypedVal, engine::{ - bytecode::{Reg, RegSpan}, translator::{Provider, UntypedProvider}, TranslationError, }, + ir::{Reg, RegSpan}, Error, }; use std::vec::Vec; diff --git a/crates/wasmi/src/engine/translator/stack/provider.rs b/crates/wasmi/src/engine/translator/stack/provider.rs index 1e49e4820c..d68f77f3f1 100644 --- a/crates/wasmi/src/engine/translator/stack/provider.rs +++ b/crates/wasmi/src/engine/translator/stack/provider.rs @@ -1,8 +1,5 @@ use super::{LocalRefs, RegisterAlloc, TypedVal}; -use crate::{ - engine::{bytecode::Reg, translator::PreservedLocal}, - Error, -}; +use crate::{engine::translator::PreservedLocal, ir::Reg, Error}; use arrayvec::ArrayVec; use std::vec::Vec; diff --git a/crates/wasmi/src/engine/translator/stack/register_alloc.rs b/crates/wasmi/src/engine/translator/stack/register_alloc.rs index f3ed3981e8..cb98d419de 100644 --- a/crates/wasmi/src/engine/translator/stack/register_alloc.rs +++ b/crates/wasmi/src/engine/translator/stack/register_alloc.rs @@ -1,9 +1,7 @@ use super::{TaggedProvider, TypedProvider}; use crate::{ - engine::{ - bytecode::{Reg, RegSpan}, - TranslationError, - }, + engine::TranslationError, + ir::{Reg, RegSpan}, Error, }; use core::{ diff --git a/crates/wasmi/src/engine/translator/tests/driver.rs b/crates/wasmi/src/engine/translator/tests/driver.rs index 52f264afb9..a67e514874 100644 --- a/crates/wasmi/src/engine/translator/tests/driver.rs +++ b/crates/wasmi/src/engine/translator/tests/driver.rs @@ -1,7 +1,8 @@ use super::create_module; use crate::{ core::UntypedVal, - engine::{bytecode::Instruction, DedupFuncType, EngineFunc}, + engine::{DedupFuncType, EngineFunc}, + ir::Instruction, Config, Engine, Module, diff --git a/crates/wasmi/src/engine/translator/tests/fuzz/mod.rs b/crates/wasmi/src/engine/translator/tests/fuzz/mod.rs index 7e5a3ca852..6ae4292886 100644 --- a/crates/wasmi/src/engine/translator/tests/fuzz/mod.rs +++ b/crates/wasmi/src/engine/translator/tests/fuzz/mod.rs @@ -3,10 +3,8 @@ use super::*; use crate::{ core::{TrapCode, F32}, - engine::{ - bytecode::{index::Global, BranchOffset, BranchOffset16, RegSpan}, - EngineFunc, - }, + engine::EngineFunc, + ir::{index::Global, BranchOffset, BranchOffset16, RegSpan}, Val, }; diff --git a/crates/wasmi/src/engine/translator/tests/mod.rs b/crates/wasmi/src/engine/translator/tests/mod.rs index f5ec441a8d..7605cd9e49 100644 --- a/crates/wasmi/src/engine/translator/tests/mod.rs +++ b/crates/wasmi/src/engine/translator/tests/mod.rs @@ -12,7 +12,7 @@ use self::{ }; use crate::{ core::UntypedVal, - engine::bytecode::{AnyConst32, BoundedRegSpan, Const16, Const32, Instruction, Reg, RegSpan}, + ir::{AnyConst32, BoundedRegSpan, Const16, Const32, Instruction, Reg, RegSpan}, Config, Engine, Module, diff --git a/crates/wasmi/src/engine/translator/tests/op/binary/f32_copysign.rs b/crates/wasmi/src/engine/translator/tests/op/binary/f32_copysign.rs index dc3d2fba4d..8ef0e111da 100644 --- a/crates/wasmi/src/engine/translator/tests/op/binary/f32_copysign.rs +++ b/crates/wasmi/src/engine/translator/tests/op/binary/f32_copysign.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::Sign; +use crate::ir::Sign; const WASM_OP: WasmOp = WasmOp::binary(WasmType::F32, "copysign"); diff --git a/crates/wasmi/src/engine/translator/tests/op/binary/f64_copysign.rs b/crates/wasmi/src/engine/translator/tests/op/binary/f64_copysign.rs index ada376211e..619ec18efd 100644 --- a/crates/wasmi/src/engine/translator/tests/op/binary/f64_copysign.rs +++ b/crates/wasmi/src/engine/translator/tests/op/binary/f64_copysign.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::Sign; +use crate::ir::Sign; const WASM_OP: WasmOp = WasmOp::binary(WasmType::F64, "copysign"); diff --git a/crates/wasmi/src/engine/translator/tests/op/block.rs b/crates/wasmi/src/engine/translator/tests/op/block.rs index 0a4043965f..740f645917 100644 --- a/crates/wasmi/src/engine/translator/tests/op/block.rs +++ b/crates/wasmi/src/engine/translator/tests/op/block.rs @@ -1,7 +1,7 @@ use super::*; -use crate::engine::{ - bytecode::{BranchOffset, BranchOffset16, RegSpan}, - translator::tests::wasm_type::WasmTy, +use crate::{ + engine::translator::tests::wasm_type::WasmTy, + ir::{BranchOffset, BranchOffset16, RegSpan}, }; use std::fmt::Display; diff --git a/crates/wasmi/src/engine/translator/tests/op/br.rs b/crates/wasmi/src/engine/translator/tests/op/br.rs index f59db87996..7eb0d4facc 100644 --- a/crates/wasmi/src/engine/translator/tests/op/br.rs +++ b/crates/wasmi/src/engine/translator/tests/op/br.rs @@ -1,8 +1,5 @@ use super::*; -use crate::{ - core::UntypedVal, - engine::{bytecode::BranchOffset, translator::tests::wasm_type::WasmTy}, -}; +use crate::{core::UntypedVal, engine::translator::tests::wasm_type::WasmTy, ir::BranchOffset}; use core::fmt::Display; #[test] diff --git a/crates/wasmi/src/engine/translator/tests/op/br_if.rs b/crates/wasmi/src/engine/translator/tests/op/br_if.rs index 322be305d1..5694f440d1 100644 --- a/crates/wasmi/src/engine/translator/tests/op/br_if.rs +++ b/crates/wasmi/src/engine/translator/tests/op/br_if.rs @@ -1,10 +1,8 @@ use super::*; use crate::{ core::UntypedVal, - engine::{ - bytecode::{BranchOffset, BranchOffset16, RegSpan}, - translator::tests::wasm_type::WasmTy, - }, + engine::translator::tests::wasm_type::WasmTy, + ir::{BranchOffset, BranchOffset16, RegSpan}, }; use core::fmt::Display; diff --git a/crates/wasmi/src/engine/translator/tests/op/br_table.rs b/crates/wasmi/src/engine/translator/tests/op/br_table.rs index d2bd089f9b..6abeb8ac69 100644 --- a/crates/wasmi/src/engine/translator/tests/op/br_table.rs +++ b/crates/wasmi/src/engine/translator/tests/op/br_table.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::{index::Global, BranchOffset, RegSpan}; +use crate::ir::{index::Global, BranchOffset, RegSpan}; use core::num::NonZeroI16; #[test] diff --git a/crates/wasmi/src/engine/translator/tests/op/call/imported.rs b/crates/wasmi/src/engine/translator/tests/op/call/imported.rs index 003136805c..88f7f2b05e 100644 --- a/crates/wasmi/src/engine/translator/tests/op/call/imported.rs +++ b/crates/wasmi/src/engine/translator/tests/op/call/imported.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::{bytecode::index::Func, RegSpan}; +use crate::ir::{index::Func, RegSpan}; #[test] #[cfg_attr(miri, ignore)] diff --git a/crates/wasmi/src/engine/translator/tests/op/call/indirect.rs b/crates/wasmi/src/engine/translator/tests/op/call/indirect.rs index 84a18be5f6..dd1deaf3e7 100644 --- a/crates/wasmi/src/engine/translator/tests/op/call/indirect.rs +++ b/crates/wasmi/src/engine/translator/tests/op/call/indirect.rs @@ -1,6 +1,6 @@ use super::*; -use crate::engine::{ - bytecode::index::{FuncType, Global, Table}, +use crate::ir::{ + index::{FuncType, Global, Table}, RegSpan, }; diff --git a/crates/wasmi/src/engine/translator/tests/op/cmp_br.rs b/crates/wasmi/src/engine/translator/tests/op/cmp_br.rs index c7ee6026d3..11b7c4f2bf 100644 --- a/crates/wasmi/src/engine/translator/tests/op/cmp_br.rs +++ b/crates/wasmi/src/engine/translator/tests/op/cmp_br.rs @@ -1,7 +1,7 @@ use super::{wasm_type::WasmTy, *}; use crate::{ core::ValType, - engine::bytecode::{index::Global, BranchOffset, BranchOffset16}, + ir::{index::Global, BranchOffset, BranchOffset16}, }; use std::fmt::{Debug, Display}; diff --git a/crates/wasmi/src/engine/translator/tests/op/copy.rs b/crates/wasmi/src/engine/translator/tests/op/copy.rs index ef81a6ce6b..b6747b127f 100644 --- a/crates/wasmi/src/engine/translator/tests/op/copy.rs +++ b/crates/wasmi/src/engine/translator/tests/op/copy.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::RegSpan; +use crate::ir::RegSpan; #[test] #[cfg_attr(miri, ignore)] diff --git a/crates/wasmi/src/engine/translator/tests/op/global_get.rs b/crates/wasmi/src/engine/translator/tests/op/global_get.rs index 49273da48f..b3d004aca8 100644 --- a/crates/wasmi/src/engine/translator/tests/op/global_get.rs +++ b/crates/wasmi/src/engine/translator/tests/op/global_get.rs @@ -1,6 +1,6 @@ use super::*; -use crate::engine::bytecode::index::Global; +use crate::ir::index::Global; use core::fmt::Display; use wasm_type::WasmTy; diff --git a/crates/wasmi/src/engine/translator/tests/op/global_set.rs b/crates/wasmi/src/engine/translator/tests/op/global_set.rs index 80ab7d7fbd..5a6291d15d 100644 --- a/crates/wasmi/src/engine/translator/tests/op/global_set.rs +++ b/crates/wasmi/src/engine/translator/tests/op/global_set.rs @@ -1,6 +1,6 @@ use super::*; -use crate::{core::ValType, engine::bytecode::index::Global}; +use crate::{core::ValType, ir::index::Global}; use core::fmt::Display; use wasm_type::WasmTy; diff --git a/crates/wasmi/src/engine/translator/tests/op/if_.rs b/crates/wasmi/src/engine/translator/tests/op/if_.rs index c6e22a520d..9315f92e5f 100644 --- a/crates/wasmi/src/engine/translator/tests/op/if_.rs +++ b/crates/wasmi/src/engine/translator/tests/op/if_.rs @@ -1,10 +1,8 @@ use super::*; use crate::{ core::{TrapCode, UntypedVal}, - engine::{ - bytecode::{index::Global, BranchOffset, BranchOffset16, RegSpan}, - EngineFunc, - }, + engine::EngineFunc, + ir::{index::Global, BranchOffset, BranchOffset16, RegSpan}, }; #[test] diff --git a/crates/wasmi/src/engine/translator/tests/op/local_preserve.rs b/crates/wasmi/src/engine/translator/tests/op/local_preserve.rs index 444e82bb54..eff1509796 100644 --- a/crates/wasmi/src/engine/translator/tests/op/local_preserve.rs +++ b/crates/wasmi/src/engine/translator/tests/op/local_preserve.rs @@ -1,7 +1,7 @@ use super::*; -use crate::engine::{ - bytecode::{BranchOffset, BranchOffset16, RegSpan}, - EngineFunc, +use crate::{ + engine::EngineFunc, + ir::{BranchOffset, BranchOffset16, RegSpan}, }; #[test] diff --git a/crates/wasmi/src/engine/translator/tests/op/local_set.rs b/crates/wasmi/src/engine/translator/tests/op/local_set.rs index 93c7b19d6f..7cca9b4e37 100644 --- a/crates/wasmi/src/engine/translator/tests/op/local_set.rs +++ b/crates/wasmi/src/engine/translator/tests/op/local_set.rs @@ -1,10 +1,10 @@ use super::*; -use crate::engine::{ - bytecode::{ +use crate::{ + engine::EngineFunc, + ir::{ index::{Func, FuncType, Table}, RegSpan, }, - EngineFunc, }; #[test] diff --git a/crates/wasmi/src/engine/translator/tests/op/loop_.rs b/crates/wasmi/src/engine/translator/tests/op/loop_.rs index 77b511ac71..760a23f402 100644 --- a/crates/wasmi/src/engine/translator/tests/op/loop_.rs +++ b/crates/wasmi/src/engine/translator/tests/op/loop_.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::{BranchOffset, RegSpan}; +use crate::ir::{BranchOffset, RegSpan}; #[test] #[cfg_attr(miri, ignore)] diff --git a/crates/wasmi/src/engine/translator/tests/op/return_call/imported.rs b/crates/wasmi/src/engine/translator/tests/op/return_call/imported.rs index cb1d5c45f5..0cadfa64fa 100644 --- a/crates/wasmi/src/engine/translator/tests/op/return_call/imported.rs +++ b/crates/wasmi/src/engine/translator/tests/op/return_call/imported.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::index::Func; +use crate::ir::index::Func; #[test] #[cfg_attr(miri, ignore)] diff --git a/crates/wasmi/src/engine/translator/tests/op/return_call/indirect.rs b/crates/wasmi/src/engine/translator/tests/op/return_call/indirect.rs index 1c115a1ec7..11ebf0d22d 100644 --- a/crates/wasmi/src/engine/translator/tests/op/return_call/indirect.rs +++ b/crates/wasmi/src/engine/translator/tests/op/return_call/indirect.rs @@ -1,5 +1,5 @@ use super::*; -use crate::engine::bytecode::index::{FuncType, Global, Table}; +use crate::ir::index::{FuncType, Global, Table}; #[test] #[cfg_attr(miri, ignore)] diff --git a/crates/wasmi/src/engine/translator/tests/wasm_type.rs b/crates/wasmi/src/engine/translator/tests/wasm_type.rs index 4f3bbe3bc9..92ff2f9ee5 100644 --- a/crates/wasmi/src/engine/translator/tests/wasm_type.rs +++ b/crates/wasmi/src/engine/translator/tests/wasm_type.rs @@ -2,7 +2,7 @@ use crate::core::ValType; use crate::{ core::{UntypedVal, F32}, - engine::bytecode::{Const32, Instruction, Reg}, + ir::{Const32, Instruction, Reg}, }; use core::fmt::Display; diff --git a/crates/wasmi/src/engine/translator/utils.rs b/crates/wasmi/src/engine/translator/utils.rs index c5af39d6e8..c54c8db017 100644 --- a/crates/wasmi/src/engine/translator/utils.rs +++ b/crates/wasmi/src/engine/translator/utils.rs @@ -1,6 +1,6 @@ use super::{stack::ValueStack, Provider, TypedProvider, TypedVal}; use crate::{ - engine::bytecode::{BoundedRegSpan, Const16, Reg, RegSpan, Sign}, + ir::{BoundedRegSpan, Const16, Reg, RegSpan, Sign}, Error, }; diff --git a/crates/wasmi/src/engine/translator/visit.rs b/crates/wasmi/src/engine/translator/visit.rs index e508c931f8..9d05466770 100644 --- a/crates/wasmi/src/engine/translator/visit.rs +++ b/crates/wasmi/src/engine/translator/visit.rs @@ -17,12 +17,11 @@ use super::{ use crate::{ core::{TrapCode, ValType, F32, F64}, engine::{ - bytecode::{self, index::FuncType, BoundedRegSpan, Const16, Instruction, Reg}, translator::{AcquiredTarget, Provider}, BlockType, FuelCosts, }, - ir::index, + ir::{self, index, index::FuncType, BoundedRegSpan, Const16, Instruction, Reg}, module::{self, FuncIdx, WasmiValueType}, Error, ExternRef, @@ -710,7 +709,7 @@ impl<'a> VisitOperator<'a> for FuncTranslator { } // Case: The `global.get` instruction accesses a mutable or imported // global variable and thus cannot be optimized away. - let global_idx = bytecode::index::Global::from(global_index); + let global_idx = ir::index::Global::from(global_index); let result = self.alloc.stack.push_dynamic()?; self.push_fueled_instr( Instruction::global_get(result, global_idx), @@ -721,7 +720,7 @@ impl<'a> VisitOperator<'a> for FuncTranslator { fn visit_global_set(&mut self, global_index: u32) -> Self::Output { bail_unreachable!(self); - let global = bytecode::index::Global::from(global_index); + let global = ir::index::Global::from(global_index); match self.alloc.stack.pop() { TypedProvider::Register(input) => { self.push_fueled_instr(Instruction::global_set(input, global), FuelCosts::entity)?; diff --git a/crates/wasmi/src/engine/translator/visit_register.rs b/crates/wasmi/src/engine/translator/visit_register.rs index 4ef6a710bf..16cc59256e 100644 --- a/crates/wasmi/src/engine/translator/visit_register.rs +++ b/crates/wasmi/src/engine/translator/visit_register.rs @@ -1,4 +1,4 @@ -use crate::engine::bytecode::{Instruction, Reg, RegSpan, VisitRegs}; +use crate::ir::{Instruction, Reg, RegSpan, VisitRegs}; /// Extension-trait for [`Instruction`] to only visit certain [`Reg`]s via closure. pub trait VisitInputRegisters { diff --git a/crates/wasmi/src/lib.rs b/crates/wasmi/src/lib.rs index c627f68f84..2662fcbb67 100644 --- a/crates/wasmi/src/lib.rs +++ b/crates/wasmi/src/lib.rs @@ -116,10 +116,11 @@ use wasmi_ir as ir; /// Defines some errors that may occur upon interaction with Wasmi. pub mod errors { pub use super::{ - engine::{bytecode::Error as IrError, EnforcedLimitsError}, + engine::EnforcedLimitsError, error::ErrorKind, func::FuncError, global::GlobalError, + ir::Error as IrError, linker::LinkerError, memory::MemoryError, module::{InstantiationError, ReadError},