diff --git a/compiler/gen/src/llvm/build.rs b/compiler/gen/src/llvm/build.rs index 4a5a8b0a64..773e3a1580 100644 --- a/compiler/gen/src/llvm/build.rs +++ b/compiler/gen/src/llvm/build.rs @@ -322,6 +322,7 @@ pub fn construct_optimization_passes<'a>( pmb.set_optimization_level(OptimizationLevel::None); } OptLevel::Optimize => { + pmb.set_optimization_level(OptimizationLevel::Aggressive); // this threshold seems to do what we want pmb.set_inliner_with_threshold(275); @@ -1165,6 +1166,8 @@ pub fn build_exp_expr<'a, 'ctx, 'env>( env.builder .build_call(*function_value, &[], "evaluate_top_level_thunk"); + call.set_call_convention(FAST_CALL_CONV); + call.try_as_basic_value().left().unwrap() } None => {