Move definition of ModuleMemoryOffset (#3228)
This was historically defined in `wasmtime-environ` but it's only used in `wasmtime-cranelift`, so this commit moves the definition to the `debug` module where it's primarily used.
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use crate::func_environ::{get_func_name, FuncEnvironment};
|
use crate::func_environ::{get_func_name, FuncEnvironment};
|
||||||
use crate::obj::{ObjectBuilder, ObjectBuilderTarget};
|
use crate::obj::{ObjectBuilder, ObjectBuilderTarget};
|
||||||
use crate::{
|
use crate::{
|
||||||
@@ -25,8 +26,8 @@ use std::mem;
|
|||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use wasmtime_environ::{
|
use wasmtime_environ::{
|
||||||
CompileError, FilePos, FlagValue, FunctionAddressMap, FunctionBodyData, FunctionInfo,
|
CompileError, FilePos, FlagValue, FunctionAddressMap, FunctionBodyData, FunctionInfo,
|
||||||
InstructionAddressMap, Module, ModuleMemoryOffset, ModuleTranslation, StackMapInformation,
|
InstructionAddressMap, Module, ModuleTranslation, StackMapInformation, TrapCode,
|
||||||
TrapCode, TrapInformation, Tunables, TypeTables, VMOffsets,
|
TrapInformation, Tunables, TypeTables, VMOffsets,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A compiler that compiles a WebAssembly module with Compiler, translating
|
/// A compiler that compiles a WebAssembly module with Compiler, translating
|
||||||
|
|||||||
@@ -2,6 +2,17 @@
|
|||||||
|
|
||||||
#![allow(clippy::cast_ptr_alignment)]
|
#![allow(clippy::cast_ptr_alignment)]
|
||||||
|
|
||||||
|
/// Memory definition offset in the VMContext structure.
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub enum ModuleMemoryOffset {
|
||||||
|
/// Not available.
|
||||||
|
None,
|
||||||
|
/// Offset to the defined memory.
|
||||||
|
Defined(u32),
|
||||||
|
/// Offset to the imported memory.
|
||||||
|
Imported(u32),
|
||||||
|
}
|
||||||
|
|
||||||
pub use write_debuginfo::{emit_dwarf, DwarfSection, DwarfSectionRelocTarget};
|
pub use write_debuginfo::{emit_dwarf, DwarfSection, DwarfSectionRelocTarget};
|
||||||
|
|
||||||
mod gc;
|
mod gc;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use super::address_transform::AddressTransform;
|
use super::address_transform::AddressTransform;
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use anyhow::{Context, Error, Result};
|
use anyhow::{Context, Error, Result};
|
||||||
use cranelift_codegen::ir::{LabelValueLoc, StackSlots, ValueLabel, ValueLoc};
|
use cranelift_codegen::ir::{LabelValueLoc, StackSlots, ValueLabel, ValueLoc};
|
||||||
use cranelift_codegen::isa::TargetIsa;
|
use cranelift_codegen::isa::TargetIsa;
|
||||||
@@ -10,7 +11,7 @@ use std::cmp::PartialEq;
|
|||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use wasmtime_environ::{DefinedFuncIndex, EntityRef, ModuleMemoryOffset};
|
use wasmtime_environ::{DefinedFuncIndex, EntityRef};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct FunctionFrameInfo<'a> {
|
pub struct FunctionFrameInfo<'a> {
|
||||||
@@ -1267,8 +1268,9 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_debug_value_range_builder() {
|
fn test_debug_value_range_builder() {
|
||||||
use super::ValueLabelRangesBuilder;
|
use super::ValueLabelRangesBuilder;
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use cranelift_codegen::ir::StackSlots;
|
use cranelift_codegen::ir::StackSlots;
|
||||||
use wasmtime_environ::{DefinedFuncIndex, EntityRef, ModuleMemoryOffset};
|
use wasmtime_environ::{DefinedFuncIndex, EntityRef};
|
||||||
|
|
||||||
let addr_tr = create_mock_address_transform();
|
let addr_tr = create_mock_address_transform();
|
||||||
let stack_slots = StackSlots::new();
|
let stack_slots = StackSlots::new();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ use self::refs::DebugInfoRefsMap;
|
|||||||
use self::simulate::generate_simulated_dwarf;
|
use self::simulate::generate_simulated_dwarf;
|
||||||
use self::unit::clone_unit;
|
use self::unit::clone_unit;
|
||||||
use crate::debug::gc::build_dependencies;
|
use crate::debug::gc::build_dependencies;
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use crate::CompiledFunctions;
|
use crate::CompiledFunctions;
|
||||||
use anyhow::Error;
|
use anyhow::Error;
|
||||||
use cranelift_codegen::isa::TargetIsa;
|
use cranelift_codegen::isa::TargetIsa;
|
||||||
@@ -11,7 +12,7 @@ use gimli::{
|
|||||||
};
|
};
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
use wasmtime_environ::{DebugInfoData, ModuleMemoryOffset};
|
use wasmtime_environ::DebugInfoData;
|
||||||
|
|
||||||
pub use address_transform::AddressTransform;
|
pub use address_transform::AddressTransform;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use super::expression::{CompiledExpression, FunctionFrameInfo};
|
use super::expression::{CompiledExpression, FunctionFrameInfo};
|
||||||
use super::utils::{add_internal_types, append_vmctx_info, get_function_frame_info};
|
use super::utils::{add_internal_types, append_vmctx_info, get_function_frame_info};
|
||||||
use super::AddressTransform;
|
use super::AddressTransform;
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use crate::CompiledFunctions;
|
use crate::CompiledFunctions;
|
||||||
use anyhow::{Context, Error};
|
use anyhow::{Context, Error};
|
||||||
use cranelift_codegen::isa::TargetIsa;
|
use cranelift_codegen::isa::TargetIsa;
|
||||||
@@ -12,7 +13,7 @@ use std::path::PathBuf;
|
|||||||
use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};
|
use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};
|
||||||
use wasmparser::Type as WasmType;
|
use wasmparser::Type as WasmType;
|
||||||
use wasmtime_environ::{
|
use wasmtime_environ::{
|
||||||
DebugInfoData, DefinedFuncIndex, EntityRef, FunctionMetadata, ModuleMemoryOffset, WasmFileInfo,
|
DebugInfoData, DefinedFuncIndex, EntityRef, FunctionMetadata, WasmFileInfo,
|
||||||
};
|
};
|
||||||
|
|
||||||
const PRODUCER_NAME: &str = "wasmtime";
|
const PRODUCER_NAME: &str = "wasmtime";
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ use super::range_info_builder::RangeInfoBuilder;
|
|||||||
use super::refs::{PendingDebugInfoRefs, PendingUnitRefs, UnitRefsMap};
|
use super::refs::{PendingDebugInfoRefs, PendingUnitRefs, UnitRefsMap};
|
||||||
use super::utils::{add_internal_types, append_vmctx_info, get_function_frame_info};
|
use super::utils::{add_internal_types, append_vmctx_info, get_function_frame_info};
|
||||||
use super::{DebugInputContext, Reader, TransformError};
|
use super::{DebugInputContext, Reader, TransformError};
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use crate::CompiledFunctions;
|
use crate::CompiledFunctions;
|
||||||
use anyhow::{Context, Error};
|
use anyhow::{Context, Error};
|
||||||
use cranelift_codegen::ir::Endianness;
|
use cranelift_codegen::ir::Endianness;
|
||||||
@@ -13,7 +14,7 @@ use cranelift_codegen::isa::TargetIsa;
|
|||||||
use gimli::write;
|
use gimli::write;
|
||||||
use gimli::{AttributeValue, DebuggingInformationEntry, Unit};
|
use gimli::{AttributeValue, DebuggingInformationEntry, Unit};
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use wasmtime_environ::{DefinedFuncIndex, ModuleMemoryOffset};
|
use wasmtime_environ::DefinedFuncIndex;
|
||||||
|
|
||||||
struct InheritedAttr<T> {
|
struct InheritedAttr<T> {
|
||||||
stack: Vec<(usize, T)>,
|
stack: Vec<(usize, T)>,
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
use super::address_transform::AddressTransform;
|
use super::address_transform::AddressTransform;
|
||||||
use super::expression::{CompiledExpression, FunctionFrameInfo};
|
use super::expression::{CompiledExpression, FunctionFrameInfo};
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use crate::CompiledFunctions;
|
use crate::CompiledFunctions;
|
||||||
use anyhow::Error;
|
use anyhow::Error;
|
||||||
use cranelift_codegen::isa::TargetIsa;
|
use cranelift_codegen::isa::TargetIsa;
|
||||||
use gimli::write;
|
use gimli::write;
|
||||||
use wasmtime_environ::{DefinedFuncIndex, ModuleMemoryOffset};
|
use wasmtime_environ::DefinedFuncIndex;
|
||||||
|
|
||||||
/// Adds internal Wasm utility types DIEs such as WebAssemblyPtr and
|
/// Adds internal Wasm utility types DIEs such as WebAssemblyPtr and
|
||||||
/// WasmtimeVMContext.
|
/// WasmtimeVMContext.
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
pub use crate::debug::transform::transform_dwarf;
|
pub use crate::debug::transform::transform_dwarf;
|
||||||
|
use crate::debug::ModuleMemoryOffset;
|
||||||
use crate::CompiledFunctions;
|
use crate::CompiledFunctions;
|
||||||
use cranelift_codegen::ir::Endianness;
|
use cranelift_codegen::ir::Endianness;
|
||||||
use cranelift_codegen::isa::{unwind::UnwindInfo, TargetIsa};
|
use cranelift_codegen::isa::{unwind::UnwindInfo, TargetIsa};
|
||||||
use cranelift_entity::EntityRef;
|
use cranelift_entity::EntityRef;
|
||||||
use gimli::write::{Address, Dwarf, EndianVec, FrameTable, Result, Sections, Writer};
|
use gimli::write::{Address, Dwarf, EndianVec, FrameTable, Result, Sections, Writer};
|
||||||
use gimli::{RunTimeEndian, SectionId};
|
use gimli::{RunTimeEndian, SectionId};
|
||||||
use wasmtime_environ::{DebugInfoData, ModuleMemoryOffset};
|
use wasmtime_environ::DebugInfoData;
|
||||||
|
|
||||||
#[allow(missing_docs)]
|
#[allow(missing_docs)]
|
||||||
pub struct DwarfSection {
|
pub struct DwarfSection {
|
||||||
|
|||||||
@@ -74,14 +74,3 @@ impl Default for FilePos {
|
|||||||
FilePos(u32::MAX)
|
FilePos(u32::MAX)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Memory definition offset in the VMContext structure.
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub enum ModuleMemoryOffset {
|
|
||||||
/// Not available.
|
|
||||||
None,
|
|
||||||
/// Offset to the defined memory.
|
|
||||||
Defined(u32),
|
|
||||||
/// Offset to the imported memory.
|
|
||||||
Imported(u32),
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user