VN has checking code with gcc_unreachable (), the following makes it cheaper by instead guarding the side-effect with flag_checking.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. 2022-07-01 Richard Biener <rguent...@suse.de> * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make checking dominance check conditional on flag_checking. --- gcc/tree-ssa-sccvn.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/tree-ssa-sccvn.cc b/gcc/tree-ssa-sccvn.cc index 76d92895a3a..c40c45ed840 100644 --- a/gcc/tree-ssa-sccvn.cc +++ b/gcc/tree-ssa-sccvn.cc @@ -4243,9 +4243,10 @@ vn_nary_op_insert_into (vn_nary_op_t vno, vn_nary_op_table_type *table) if (dominated_by_p (CDI_DOMINATORS, vno_bb, val_bb)) /* Value registered with more generic predicate. */ return *slot; - else if (dominated_by_p (CDI_DOMINATORS, val_bb, vno_bb)) + else if (flag_checking) /* Shouldn't happen, we insert in RPO order. */ - gcc_unreachable (); + gcc_assert (!dominated_by_p (CDI_DOMINATORS, + val_bb, vno_bb)); } /* Append value. */ *next = (vn_pval *) obstack_alloc (&vn_tables_obstack, -- 2.35.3