#![deny( nonstandard_style, unused_imports, unused_mut, unused_variables, unused_unsafe, unreachable_patterns )] #![cfg_attr(not(target_os = "windows"), deny(dead_code))] #![cfg_attr(nightly, feature(unwind_attributes))] #![doc(html_favicon_url = "https://wasmer.io/static/icons/favicon.ico")] #![doc(html_logo_url = "https://avatars3.githubusercontent.com/u/44205449?s=200&v=4")] mod backend; mod code; mod intrinsics; mod platform; mod read_info; mod stackmap; mod state; mod structs; mod trampolines; pub use code::LLVMFunctionCodeGenerator as FunctionCodeGenerator; pub use code::LLVMModuleCodeGenerator as ModuleCodeGenerator; use wasmer_runtime_core::codegen::SimpleStreamingCompilerGen; pub type LLVMCompiler = SimpleStreamingCompilerGen< code::LLVMModuleCodeGenerator<'static>, code::LLVMFunctionCodeGenerator<'static>, backend::LLVMBackend, code::CodegenError, >; pub type InkwellModule<'ctx> = inkwell::module::Module<'ctx>; pub type InkwellMemoryBuffer = inkwell::memory_buffer::MemoryBuffer; pub trait LLVMCallbacks: std::any::Any + 'static { fn preopt_ir_callback(&mut self, module: &InkwellModule); fn postopt_ir_callback(&mut self, module: &InkwellModule); fn obj_memory_buffer_callback(&mut self, memory_buffer: &InkwellMemoryBuffer); } pub struct LLVMBackendConfig { pub callbacks: Option>>, }