diff --git a/lightbeam/Cargo.toml b/lightbeam/Cargo.toml index 455340750f..4f6b1b16b2 100644 --- a/lightbeam/Cargo.toml +++ b/lightbeam/Cargo.toml @@ -22,7 +22,7 @@ failure_derive = "0.1.3" cranelift-codegen = "0.44" multi_mut = "0.1" either = "1.5" -wabt = "0.7" +wabt = "0.9.2" lazy_static = "1.2" quickcheck = "0.7" typemap = "0.3" diff --git a/wasmtime-environ/src/compilation.rs b/wasmtime-environ/src/compilation.rs index 4c4f306ed0..7d5c936fc9 100644 --- a/wasmtime-environ/src/compilation.rs +++ b/wasmtime-environ/src/compilation.rs @@ -153,6 +153,10 @@ pub enum CompileError { /// A compilation error occured. #[fail(display = "Compilation error: {}", _0)] Codegen(CodegenError), + + /// A compilation error occured. + #[fail(display = "Debug info is not supported with this configuration")] + DebugInfoNotSupported, } /// An implementation of a compiler from parsed WebAssembly module to native code. diff --git a/wasmtime-environ/src/lightbeam.rs b/wasmtime-environ/src/lightbeam.rs index e40befb5ac..b327861ce0 100644 --- a/wasmtime-environ/src/lightbeam.rs +++ b/wasmtime-environ/src/lightbeam.rs @@ -1,12 +1,13 @@ //! Support for compiling with Lightbeam. -use crate::compilation::{AddressTransforms, Compilation, CompileError, Relocations}; +use crate::compilation::{Compilation, CompileError, Relocations, Traps}; use crate::func_environ::FuncEnvironment; use crate::module::Module; use crate::module_environ::FunctionBodyData; // TODO: Put this in `compilation` +use crate::address_map::{ModuleAddressMap, ValueLabelsRanges}; use crate::cranelift::RelocSink; -use cranelift_codegen::isa; +use cranelift_codegen::{ir, isa}; use cranelift_entity::{PrimaryMap, SecondaryMap}; use cranelift_wasm::DefinedFuncIndex; use lightbeam; @@ -22,8 +23,22 @@ impl crate::compilation::Compiler for Lightbeam { function_body_inputs: PrimaryMap>, isa: &dyn isa::TargetIsa, // TODO - _generate_debug_info: bool, - ) -> Result<(Compilation, Relocations, AddressTransforms), CompileError> { + generate_debug_info: bool, + ) -> Result< + ( + Compilation, + Relocations, + ModuleAddressMap, + ValueLabelsRanges, + PrimaryMap, + Traps, + ), + CompileError, + > { + if generate_debug_info { + return Err(CompileError::DebugInfoNotSupported); + } + let env = FuncEnvironment::new(isa.frontend_config(), module); let mut relocations = PrimaryMap::new(); let mut codegen_session: lightbeam::CodeGenSession<_> = @@ -57,7 +72,10 @@ impl crate::compilation::Compiler for Lightbeam { Ok(( Compilation::from_buffer(code_section.buffer().to_vec(), code_section_ranges_and_jt), relocations, - AddressTransforms::new(), + ModuleAddressMap::new(), + ValueLabelsRanges::new(), + PrimaryMap::new(), + Traps::new(), )) } }