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::obj::{ObjectBuilder, ObjectBuilderTarget};
use crate::{
@@ -25,8 +26,8 @@ use std::mem;
use std::sync::Mutex;
use wasmtime_environ::{
CompileError, FilePos, FlagValue, FunctionAddressMap, FunctionBodyData, FunctionInfo,
InstructionAddressMap, Module, ModuleMemoryOffset, ModuleTranslation, StackMapInformation,
TrapCode, TrapInformation, Tunables, TypeTables, VMOffsets,
InstructionAddressMap, Module, ModuleTranslation, StackMapInformation, TrapCode,
TrapInformation, Tunables, TypeTables, VMOffsets,
};
/// A compiler that compiles a WebAssembly module with Compiler, translating

View File

@@ -2,6 +2,17 @@
#![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};
mod gc;

View File

@@ -1,4 +1,5 @@
use super::address_transform::AddressTransform;
use crate::debug::ModuleMemoryOffset;
use anyhow::{Context, Error, Result};
use cranelift_codegen::ir::{LabelValueLoc, StackSlots, ValueLabel, ValueLoc};
use cranelift_codegen::isa::TargetIsa;
@@ -10,7 +11,7 @@ use std::cmp::PartialEq;
use std::collections::{HashMap, HashSet};
use std::hash::{Hash, Hasher};
use std::rc::Rc;
use wasmtime_environ::{DefinedFuncIndex, EntityRef, ModuleMemoryOffset};
use wasmtime_environ::{DefinedFuncIndex, EntityRef};
#[derive(Debug)]
pub struct FunctionFrameInfo<'a> {
@@ -1267,8 +1268,9 @@ mod tests {
#[test]
fn test_debug_value_range_builder() {
use super::ValueLabelRangesBuilder;
use crate::debug::ModuleMemoryOffset;
use cranelift_codegen::ir::StackSlots;
use wasmtime_environ::{DefinedFuncIndex, EntityRef, ModuleMemoryOffset};
use wasmtime_environ::{DefinedFuncIndex, EntityRef};
let addr_tr = create_mock_address_transform();
let stack_slots = StackSlots::new();

View File

@@ -2,6 +2,7 @@ use self::refs::DebugInfoRefsMap;
use self::simulate::generate_simulated_dwarf;
use self::unit::clone_unit;
use crate::debug::gc::build_dependencies;
use crate::debug::ModuleMemoryOffset;
use crate::CompiledFunctions;
use anyhow::Error;
use cranelift_codegen::isa::TargetIsa;
@@ -11,7 +12,7 @@ use gimli::{
};
use std::collections::HashSet;
use thiserror::Error;
use wasmtime_environ::{DebugInfoData, ModuleMemoryOffset};
use wasmtime_environ::DebugInfoData;
pub use address_transform::AddressTransform;

View File

@@ -1,6 +1,7 @@
use super::expression::{CompiledExpression, FunctionFrameInfo};
use super::utils::{add_internal_types, append_vmctx_info, get_function_frame_info};
use super::AddressTransform;
use crate::debug::ModuleMemoryOffset;
use crate::CompiledFunctions;
use anyhow::{Context, Error};
use cranelift_codegen::isa::TargetIsa;
@@ -12,7 +13,7 @@ use std::path::PathBuf;
use std::sync::atomic::{AtomicUsize, Ordering::SeqCst};
use wasmparser::Type as WasmType;
use wasmtime_environ::{
DebugInfoData, DefinedFuncIndex, EntityRef, FunctionMetadata, ModuleMemoryOffset, WasmFileInfo,
DebugInfoData, DefinedFuncIndex, EntityRef, FunctionMetadata, WasmFileInfo,
};
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::utils::{add_internal_types, append_vmctx_info, get_function_frame_info};
use super::{DebugInputContext, Reader, TransformError};
use crate::debug::ModuleMemoryOffset;
use crate::CompiledFunctions;
use anyhow::{Context, Error};
use cranelift_codegen::ir::Endianness;
@@ -13,7 +14,7 @@ use cranelift_codegen::isa::TargetIsa;
use gimli::write;
use gimli::{AttributeValue, DebuggingInformationEntry, Unit};
use std::collections::HashSet;
use wasmtime_environ::{DefinedFuncIndex, ModuleMemoryOffset};
use wasmtime_environ::DefinedFuncIndex;
struct InheritedAttr<T> {
stack: Vec<(usize, T)>,

View File

@@ -1,10 +1,11 @@
use super::address_transform::AddressTransform;
use super::expression::{CompiledExpression, FunctionFrameInfo};
use crate::debug::ModuleMemoryOffset;
use crate::CompiledFunctions;
use anyhow::Error;
use cranelift_codegen::isa::TargetIsa;
use gimli::write;
use wasmtime_environ::{DefinedFuncIndex, ModuleMemoryOffset};
use wasmtime_environ::DefinedFuncIndex;
/// Adds internal Wasm utility types DIEs such as WebAssemblyPtr and
/// WasmtimeVMContext.

View File

@@ -1,11 +1,12 @@
pub use crate::debug::transform::transform_dwarf;
use crate::debug::ModuleMemoryOffset;
use crate::CompiledFunctions;
use cranelift_codegen::ir::Endianness;
use cranelift_codegen::isa::{unwind::UnwindInfo, TargetIsa};
use cranelift_entity::EntityRef;
use gimli::write::{Address, Dwarf, EndianVec, FrameTable, Result, Sections, Writer};
use gimli::{RunTimeEndian, SectionId};
use wasmtime_environ::{DebugInfoData, ModuleMemoryOffset};
use wasmtime_environ::DebugInfoData;
#[allow(missing_docs)]
pub struct DwarfSection {

View File

@@ -74,14 +74,3 @@ impl Default for FilePos {
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),
}