mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-15 09:51:21 +00:00
Merge branch 'ventuzelo/fix-1005-panic-sub-overflow' of github.com:pventuzelo/wasmer into ventuzelo/fix-1005-panic-sub-overflow
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "wasmer-llvm-backend"
|
||||
version = "0.10.2"
|
||||
version = "0.11.0"
|
||||
license = "MIT"
|
||||
authors = ["The Wasmer Engineering Team <engineering@wasmer.io>"]
|
||||
repository = "https://github.com/wasmerio/wasmer"
|
||||
@ -10,7 +10,7 @@ edition = "2018"
|
||||
readme = "README.md"
|
||||
|
||||
[dependencies]
|
||||
wasmer-runtime-core = { path = "../runtime-core", version = "0.10.2" }
|
||||
wasmer-runtime-core = { path = "../runtime-core", version = "0.11.0" }
|
||||
wasmparser = "0.39.1"
|
||||
smallvec = "0.6"
|
||||
goblin = "0.0.24"
|
||||
@ -41,3 +41,4 @@ wabt = "0.9.1"
|
||||
|
||||
[features]
|
||||
debug = ["wasmer-runtime-core/debug"]
|
||||
test = []
|
||||
|
@ -1412,14 +1412,11 @@ impl FunctionCodeGenerator<CodegenError> for LLVMFunctionCodeGenerator {
|
||||
}
|
||||
}
|
||||
Operator::Return => {
|
||||
let frame = state.outermost_frame()?;
|
||||
let current_block = builder.get_insert_block().ok_or(BinaryReaderError {
|
||||
message: "not currently in a block",
|
||||
offset: -1isize as usize,
|
||||
})?;
|
||||
|
||||
builder.build_unconditional_branch(frame.br_dest());
|
||||
|
||||
let frame = state.outermost_frame()?;
|
||||
for phi in frame.phis().to_vec().iter() {
|
||||
let (arg, info) = state.pop1_extra()?;
|
||||
@ -1427,6 +1424,9 @@ impl FunctionCodeGenerator<CodegenError> for LLVMFunctionCodeGenerator {
|
||||
phi.add_incoming(&[(&arg, ¤t_block)]);
|
||||
}
|
||||
|
||||
let frame = state.outermost_frame()?;
|
||||
builder.build_unconditional_branch(frame.br_dest());
|
||||
|
||||
state.reachable = false;
|
||||
}
|
||||
|
||||
@ -8286,25 +8286,42 @@ impl ModuleCodeGenerator<LLVMFunctionCodeGenerator, LLVMBackend, CodegenError>
|
||||
}
|
||||
|
||||
let pass_manager = PassManager::create(());
|
||||
if cfg!(test) {
|
||||
pass_manager.add_verifier_pass();
|
||||
}
|
||||
|
||||
#[cfg(feature = "test")]
|
||||
pass_manager.add_verifier_pass();
|
||||
|
||||
pass_manager.add_type_based_alias_analysis_pass();
|
||||
pass_manager.add_ipsccp_pass();
|
||||
pass_manager.add_prune_eh_pass();
|
||||
pass_manager.add_dead_arg_elimination_pass();
|
||||
pass_manager.add_function_inlining_pass();
|
||||
pass_manager.add_lower_expect_intrinsic_pass();
|
||||
pass_manager.add_scalar_repl_aggregates_pass();
|
||||
pass_manager.add_instruction_combining_pass();
|
||||
pass_manager.add_cfg_simplification_pass();
|
||||
pass_manager.add_gvn_pass();
|
||||
pass_manager.add_jump_threading_pass();
|
||||
pass_manager.add_correlated_value_propagation_pass();
|
||||
pass_manager.add_sccp_pass();
|
||||
pass_manager.add_cfg_simplification_pass();
|
||||
pass_manager.add_reassociate_pass();
|
||||
pass_manager.add_loop_rotate_pass();
|
||||
pass_manager.add_loop_unswitch_pass();
|
||||
pass_manager.add_ind_var_simplify_pass();
|
||||
pass_manager.add_licm_pass();
|
||||
pass_manager.add_loop_vectorize_pass();
|
||||
pass_manager.add_instruction_combining_pass();
|
||||
pass_manager.add_ipsccp_pass();
|
||||
pass_manager.add_reassociate_pass();
|
||||
pass_manager.add_cfg_simplification_pass();
|
||||
pass_manager.add_gvn_pass();
|
||||
pass_manager.add_memcpy_optimize_pass();
|
||||
pass_manager.add_dead_store_elimination_pass();
|
||||
pass_manager.add_bit_tracking_dce_pass();
|
||||
pass_manager.add_instruction_combining_pass();
|
||||
pass_manager.add_reassociate_pass();
|
||||
pass_manager.add_cfg_simplification_pass();
|
||||
pass_manager.add_bit_tracking_dce_pass();
|
||||
pass_manager.add_slp_vectorize_pass();
|
||||
pass_manager.run_on(&*self.module.borrow_mut());
|
||||
pass_manager.add_early_cse_pass();
|
||||
|
||||
pass_manager.run_on(&*self.module.borrow_mut());
|
||||
if let Some(path) = unsafe { &crate::GLOBAL_OPTIONS.post_opt_ir } {
|
||||
self.module.borrow_mut().print_to_file(path).unwrap();
|
||||
}
|
||||
|
@ -1132,7 +1132,7 @@ impl<'a> CtxType<'a> {
|
||||
module.clone(),
|
||||
intrinsics,
|
||||
"context_field_ptr_to_internals",
|
||||
local_internals_ptr_ptr.as_instruction_value().unwrap(),
|
||||
local_internals_ptr.as_instruction_value().unwrap(),
|
||||
None,
|
||||
);
|
||||
unsafe {
|
||||
|
Reference in New Issue
Block a user