shrink Call

This commit is contained in:
Folkert 2021-11-13 15:59:19 +01:00
parent 13713ee6ad
commit 83953b0bba
5 changed files with 39 additions and 39 deletions

View file

@ -28,11 +28,11 @@ pub const PRETTY_PRINT_IR_SYMBOLS: bool = false;
// please change it to the lower number.
// if it went up, maybe check that the change is really required
static_assertions::assert_eq_size!([u8; 3 * 8], Literal);
static_assertions::assert_eq_size!([u8; 13 * 8], Expr);
static_assertions::assert_eq_size!([u8; 11 * 8], Expr);
static_assertions::assert_eq_size!([u8; 22 * 8], Stmt);
static_assertions::assert_eq_size!([u8; 7 * 8], ProcLayout);
static_assertions::assert_eq_size!([u8; 12 * 8], Call);
static_assertions::assert_eq_size!([u8; 10 * 8], CallType);
static_assertions::assert_eq_size!([u8; 8 * 8], Call);
static_assertions::assert_eq_size!([u8; 6 * 8], CallType);
macro_rules! return_on_layout_error {
($env:expr, $layout_result:expr) => {
@ -1128,7 +1128,7 @@ impl UpdateModeId {
pub enum CallType<'a> {
ByName {
name: Symbol,
ret_layout: Layout<'a>,
ret_layout: &'a Layout<'a>,
arg_layouts: &'a [Layout<'a>],
specialization_id: CallSpecId,
},
@ -2027,7 +2027,7 @@ fn specialize_external<'a>(
Symbol::ARG_CLOSURE,
argument_symbols.into_bump_slice(),
argument_layouts,
*return_layout,
return_layout,
assigned,
hole,
);
@ -3871,7 +3871,7 @@ pub fn with_hole<'a>(
closure_data_symbol,
arg_symbols,
arg_layouts,
*ret_layout,
ret_layout,
assigned,
hole,
);
@ -3898,7 +3898,7 @@ pub fn with_hole<'a>(
closure_data_symbol,
arg_symbols,
arg_layouts,
*ret_layout,
ret_layout,
assigned,
hole,
);
@ -6107,7 +6107,7 @@ fn force_thunk<'a>(
let call = self::Call {
call_type: CallType::ByName {
name: thunk_name,
ret_layout: layout,
ret_layout: env.arena.alloc(layout),
arg_layouts: &[],
specialization_id: env.next_call_specialization_id(),
},
@ -6472,7 +6472,7 @@ fn call_by_name<'a>(
closure_data_symbol,
arg_symbols,
arg_layouts,
*ret_layout,
ret_layout,
assigned,
hole,
);
@ -6596,7 +6596,7 @@ fn call_by_name_help<'a>(
let call = self::Call {
call_type: CallType::ByName {
name: proc_name,
ret_layout: *ret_layout,
ret_layout: ret_layout,
arg_layouts: argument_layouts,
specialization_id: env.next_call_specialization_id(),
},
@ -6637,7 +6637,7 @@ fn call_by_name_help<'a>(
let call = self::Call {
call_type: CallType::ByName {
name: proc_name,
ret_layout: *ret_layout,
ret_layout: ret_layout,
arg_layouts: argument_layouts,
specialization_id: env.next_call_specialization_id(),
},
@ -6691,7 +6691,7 @@ fn call_by_name_help<'a>(
let call = self::Call {
call_type: CallType::ByName {
name: proc_name,
ret_layout: *ret_layout,
ret_layout: ret_layout,
arg_layouts: argument_layouts,
specialization_id: env.next_call_specialization_id(),
},
@ -6939,7 +6939,7 @@ fn call_specialized_proc<'a>(
let call = self::Call {
call_type: CallType::ByName {
name: proc_name,
ret_layout: function_layout.result,
ret_layout: env.arena.alloc(function_layout.result),
arg_layouts: function_layout.arguments,
specialization_id: env.next_call_specialization_id(),
},
@ -6982,7 +6982,7 @@ fn call_specialized_proc<'a>(
closure_data_symbol,
field_symbols,
argument_layouts.into_bump_slice(),
function_layout.result,
env.arena.alloc(function_layout.result),
assigned,
hole,
);
@ -7012,7 +7012,7 @@ fn call_specialized_proc<'a>(
let call = self::Call {
call_type: CallType::ByName {
name: proc_name,
ret_layout: function_layout.result,
ret_layout: env.arena.alloc(function_layout.result),
arg_layouts: function_layout.arguments,
specialization_id: env.next_call_specialization_id(),
},
@ -8096,7 +8096,7 @@ fn match_on_lambda_set<'a>(
closure_data_symbol: Symbol,
argument_symbols: &'a [Symbol],
argument_layouts: &'a [Layout<'a>],
return_layout: Layout<'a>,
return_layout: &'a Layout<'a>,
assigned: Symbol,
hole: &'a Stmt<'a>,
) -> Stmt<'a> {
@ -8193,7 +8193,7 @@ fn union_lambda_set_to_switch<'a>(
closure_data_symbol: Symbol,
argument_symbols: &'a [Symbol],
argument_layouts: &'a [Layout<'a>],
return_layout: Layout<'a>,
return_layout: &'a Layout<'a>,
assigned: Symbol,
hole: &'a Stmt<'a>,
) -> Stmt<'a> {
@ -8237,12 +8237,12 @@ fn union_lambda_set_to_switch<'a>(
cond_layout: closure_tag_id_layout,
branches: branches.into_bump_slice(),
default_branch,
ret_layout: return_layout,
ret_layout: *return_layout,
};
let param = Param {
symbol: assigned,
layout: return_layout,
layout: *return_layout,
borrow: false,
};
@ -8264,7 +8264,7 @@ fn union_lambda_set_branch<'a>(
closure_data_layout: Layout<'a>,
argument_symbols_slice: &'a [Symbol],
argument_layouts_slice: &'a [Layout<'a>],
return_layout: Layout<'a>,
return_layout: &'a Layout<'a>,
) -> Stmt<'a> {
let result_symbol = env.unique_symbol();
@ -8293,7 +8293,7 @@ fn union_lambda_set_branch_help<'a>(
closure_data_layout: Layout<'a>,
argument_symbols_slice: &'a [Symbol],
argument_layouts_slice: &'a [Layout<'a>],
return_layout: Layout<'a>,
return_layout: &'a Layout<'a>,
assigned: Symbol,
hole: &'a Stmt<'a>,
) -> Stmt<'a> {
@ -8339,7 +8339,7 @@ fn union_lambda_set_branch_help<'a>(
arguments: argument_symbols,
};
build_call(env, call, assigned, return_layout, hole)
build_call(env, call, assigned, *return_layout, hole)
}
#[allow(clippy::too_many_arguments)]
@ -8351,7 +8351,7 @@ fn enum_lambda_set_to_switch<'a>(
closure_data_symbol: Symbol,
argument_symbols: &'a [Symbol],
argument_layouts: &'a [Layout<'a>],
return_layout: Layout<'a>,
return_layout: &'a Layout<'a>,
assigned: Symbol,
hole: &'a Stmt<'a>,
) -> Stmt<'a> {
@ -8388,12 +8388,12 @@ fn enum_lambda_set_to_switch<'a>(
cond_layout: closure_tag_id_layout,
branches: branches.into_bump_slice(),
default_branch,
ret_layout: return_layout,
ret_layout: *return_layout,
};
let param = Param {
symbol: assigned,
layout: return_layout,
layout: *return_layout,
borrow: false,
};
@ -8414,7 +8414,7 @@ fn enum_lambda_set_branch<'a>(
closure_data_layout: Layout<'a>,
argument_symbols_slice: &'a [Symbol],
argument_layouts_slice: &'a [Layout<'a>],
return_layout: Layout<'a>,
return_layout: &'a Layout<'a>,
) -> Stmt<'a> {
let result_symbol = env.unique_symbol();
@ -8455,7 +8455,7 @@ fn enum_lambda_set_branch<'a>(
},
arguments: argument_symbols,
};
build_call(env, call, assigned, return_layout, env.arena.alloc(hole))
build_call(env, call, assigned, *return_layout, env.arena.alloc(hole))
}
#[allow(clippy::too_many_arguments)]