aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/frontend.icl9
-rw-r--r--frontend/trans.icl4
2 files changed, 10 insertions, 3 deletions
diff --git a/frontend/frontend.icl b/frontend/frontend.icl
index 9982011..bd7d111 100644
--- a/frontend/frontend.icl
+++ b/frontend/frontend.icl
@@ -211,9 +211,12 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules functions_an
exported_functions
main_dcl_module_n def_min def_max predef_symbols var_heap expression_heap error_admin
_
- # (fun_defs,predef_symbols,var_heap,expression_heap,error_admin)
- = stripStrictLets fun_defs predef_symbols var_heap expression_heap error_admin
- -> (components, fun_defs, predef_symbols, var_heap, expression_heap, error_admin)
+ -> case options.feo_fusion of
+ True
+ # (fun_defs,predef_symbols,var_heap,expression_heap,error_admin)
+ = stripStrictLets fun_defs predef_symbols var_heap expression_heap error_admin
+ -> (components, fun_defs, predef_symbols, var_heap, expression_heap, error_admin)
+ _ -> (components, fun_defs, predef_symbols, var_heap, expression_heap, error_admin)
# error = error_admin.ea_file
| not error_admin.ea_ok
diff --git a/frontend/trans.icl b/frontend/trans.icl
index e74f996..4f7add3 100644
--- a/frontend/trans.icl
+++ b/frontend/trans.icl
@@ -3192,6 +3192,10 @@ where
# ti = foldSt (transform_function common_defs imported_funs) group_members ti
// partitionate group: need to know added functions for this...
# (after,ti) = ti!ti_next_fun_nr
+
+ | not (compile_with_fusion || after > before)
+ = (inc group_nr,[{group_members=group_members}:acc_groups],ti)
+
# (new_groups,ti) = partition_group group_nr (group_members++[before..after-1]) ti
// reanalyse consumers
# (cleanup,ti_fun_defs,ti_var_heap,ti_symbol_heap,ti_fun_heap,ti_cons_args,same)