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:
Alex Crichton
2021-08-23 14:42:21 -05:00
committed by GitHub
parent 22ab535ad9
commit eb21ae149a
9 changed files with 28 additions and 20 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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();

View File

@@ -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;

View File

@@ -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";

View File

@@ -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)>,

View File

@@ -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.

View File

@@ -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 {

View File

@@ -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),
}