Skip to content

Commit aaa1cdb

Browse files
authored
flambda-backend: Expose Flambda 2 flags via OCAMLPARAM (#304)
1 parent 62db54f commit aaa1cdb

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

driver/compenv.ml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,94 @@ let read_one_param ppf position name v =
362362
| "insn-sched" -> set "insn-sched" [ insn_sched ] v
363363
| "no-insn-sched" -> clear "insn-sched" [ insn_sched ] v
364364

365+
| "flambda2-join-points" ->
366+
set "flambda2-join-points"
367+
[Flambda2.join_points] v
368+
| "no-flambda2-join-points" ->
369+
clear "flambda2-join-points"
370+
[Flambda2.join_points] v
371+
| "flambda2-unbox-along-intra-function-control-flow" ->
372+
set "flambda2-unbox-along-intra-function-control-flow"
373+
[Flambda2.unbox_along_intra_function_control_flow] v
374+
| "no-flambda2-unbox-along-intra-function-control-flow" ->
375+
clear "flambda2-unbox-along-intra-function-control-flow"
376+
[Flambda2.unbox_along_intra_function_control_flow] v
377+
| "flambda2-backend-cse-at-toplevel" ->
378+
set "flambda2-backend-cse-at-toplevel"
379+
[Flambda2.backend_cse_at_toplevel] v
380+
| "no-flambda2-backend-cse-at-toplevel" ->
381+
clear "flambda2-backend-cse-at-toplevel"
382+
[Flambda2.backend_cse_at_toplevel] v
383+
| "flambda2-cse-depth" ->
384+
int_setter ppf "flambda2-cse-depth" Flambda2.cse_depth v
385+
| "flambda2-expert-inline-effects-in-cmm" ->
386+
set "flambda2-expert-inline-effects-in-cmm"
387+
[Flambda2.Expert.inline_effects_in_cmm] v
388+
| "no-flambda2-expert-inline-effects-in-cmm" ->
389+
clear "flambda2-expert-inline-effects-in-cmm"
390+
[Flambda2.Expert.inline_effects_in_cmm] v
391+
| "flambda2-expert-phantom-lets" ->
392+
set "flambda2-expert-phantom-lets"
393+
[Flambda2.Expert.phantom_lets] v
394+
| "no-flambda2-expert-phantom-lets" ->
395+
clear "flambda2-expert-phantom-lets"
396+
[Flambda2.Expert.phantom_lets] v
397+
| "flambda2-expert-max-unboxing-depth" ->
398+
int_setter ppf "flambda2-expert-max-unboxing-depth"
399+
Flambda2.Expert.max_unboxing_depth v
400+
| "flambda2-inline-max-depth" ->
401+
Int_arg_helper.parse v
402+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-max-depth'"
403+
Flambda2.Inlining.max_depth
404+
| "flambda2-inline-call-cost" ->
405+
Float_arg_helper.parse v
406+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-call-cost'"
407+
Flambda2.Inlining.call_cost
408+
| "flambda2-inline-alloc-cost" ->
409+
Float_arg_helper.parse v
410+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-alloc-cost'"
411+
Flambda2.Inlining.alloc_cost
412+
| "flambda2-inline-prim-cost" ->
413+
Float_arg_helper.parse v
414+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-prim-cost'"
415+
Flambda2.Inlining.prim_cost
416+
| "flambda2-inline-branch-cost" ->
417+
Float_arg_helper.parse v
418+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-branch-cost'"
419+
Flambda2.Inlining.branch_cost
420+
| "flambda2-inline-indirect-cost" ->
421+
Float_arg_helper.parse v
422+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-indirect-cost'"
423+
Flambda2.Inlining.indirect_call_cost
424+
| "flambda2-inline-poly-compare-cost" ->
425+
Float_arg_helper.parse v
426+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-poly-compare-cost'"
427+
Flambda2.Inlining.poly_compare_cost
428+
| "flambda2-inline-small-function-size" ->
429+
Int_arg_helper.parse v
430+
"Bad syntax in OCAMLPARAM for 'flambda2-small-function-size'"
431+
Flambda2.Inlining.small_function_size
432+
| "flambda2-inline-large-function-size" ->
433+
Int_arg_helper.parse v
434+
"Bad syntax in OCAMLPARAM for 'flambda2-large-function-size'"
435+
Flambda2.Inlining.large_function_size
436+
| "flambda2-inline-threshold" ->
437+
Float_arg_helper.parse v
438+
"Bad syntax in OCAMLPARAM for 'flambda2-inline-threshold'"
439+
Flambda2.Inlining.threshold
440+
| "flambda2-treat-invalid-code-as-unreachable" ->
441+
set "flambda2-treat-invalid-code-as-unreachable"
442+
[Flambda2.treat_invalid_code_as_unreachable] v
443+
| "no-flambda2-treat-invalid-code-as-unreachable" ->
444+
clear "flambda2-treat-invalid-code-as-unreachable"
445+
[Flambda2.treat_invalid_code_as_unreachable] v
446+
| "flambda2-inlining-report-bin" ->
447+
set "flambda2-inlining-report-bin"
448+
[Flambda2.Inlining.report_bin] v
449+
| "no-flambda2-inlining-report-bin" ->
450+
clear "flambda2-inlining-report-bin"
451+
[Flambda2.Inlining.report_bin] v
452+
365453
(* color output *)
366454
| "color" ->
367455
begin match color_reader.parse v with

0 commit comments

Comments
 (0)