Skip to content

Commit 31e5014

Browse files
committed
Enable cfg invariants and dead trap handler elimination by default
Fail if any handlers are dead
1 parent ddbd1b2 commit 31e5014

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

backend/cfg/cfg.ml

+3-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,9 @@ let remove_trap_instructions t removed_trap_handlers =
202202
remove a few pushtrap/poptrap. *)
203203
assert Config.flambda2;
204204
(* remove Lpushtrap and Lpoptrap instructions that refer to dead labels. *)
205-
Label.Tbl.iter remove_trap_instr t.blocks)
205+
Label.Tbl.iter remove_trap_instr t.blocks;
206+
Misc.fatal_errorf "Cfg of %s had dead trap handlers %a\n" t.fun_name
207+
Label.Set.print removed_trap_handlers)
206208

207209
let remove_blocks t labels_to_remove =
208210
let removed_labels = ref Label.Set.empty in

driver/flambda_backend_flags.ml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
(**************************************************************************)
1616
let use_ocamlcfg = ref true (* -[no-]ocamlcfg *)
1717
let dump_cfg = ref false (* -dcfg *)
18-
let cfg_invariants = ref false (* -dcfg-invariants *)
18+
let cfg_invariants = ref true (* -dcfg-invariants *)
1919
let regalloc = ref "" (* -regalloc *)
2020
let regalloc_params = ref ([] : string list) (* -regalloc-param *)
2121
let regalloc_validate = ref true (* -[no-]regalloc-validate *)
@@ -32,7 +32,7 @@ let cfg_peephole_optimize = ref true (* -[no-]cfg-peephole-optimize *)
3232
let cfg_stack_checks = ref true (* -[no-]cfg-stack-check *)
3333
let cfg_stack_checks_threshold = ref 16384 (* -cfg-stack-threshold *)
3434

35-
let cfg_eliminate_dead_trap_handlers = ref false (* -cfg-eliminate-dead-trap-handlers *)
35+
let cfg_eliminate_dead_trap_handlers = ref true (* -cfg-eliminate-dead-trap-handlers *)
3636

3737
let reorder_blocks_random = ref None (* -reorder-blocks-random seed *)
3838
let basic_block_sections = ref false (* -basic-block-sections *)

0 commit comments

Comments
 (0)