New optimization to split independent lam function applications to enable case constr to optimize further

This commit is contained in:
microproofs
2025-01-11 17:04:26 +07:00
parent d559e384ec
commit 09ddec6b41
5 changed files with 167 additions and 27 deletions

View File

@@ -3712,7 +3712,7 @@ impl<'a> CodeGenerator<'a> {
interner.program(&mut program);
let eval_program: Program<NamedDeBruijn> =
program.clean_up(false).try_into().unwrap();
program.clean_up_no_inlines().try_into().unwrap();
Some(
eval_program
@@ -3822,7 +3822,7 @@ impl<'a> CodeGenerator<'a> {
interner.program(&mut program);
let eval_program: Program<NamedDeBruijn> =
program.clean_up(false).try_into().unwrap();
program.clean_up_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
@@ -4364,7 +4364,7 @@ impl<'a> CodeGenerator<'a> {
interner.program(&mut program);
let eval_program: Program<NamedDeBruijn> =
program.clean_up(false).try_into().unwrap();
program.clean_up_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
@@ -4389,7 +4389,7 @@ impl<'a> CodeGenerator<'a> {
interner.program(&mut program);
let eval_program: Program<NamedDeBruijn> =
program.clean_up(false).try_into().unwrap();
program.clean_up_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())
@@ -4802,7 +4802,7 @@ impl<'a> CodeGenerator<'a> {
interner.program(&mut program);
let eval_program: Program<NamedDeBruijn> =
program.clean_up(false).try_into().unwrap();
program.clean_up_no_inlines().try_into().unwrap();
let evaluated_term: Term<NamedDeBruijn> = eval_program
.eval(ExBudget::default())