From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2140) id 9D6DF385C6D6; Sat, 30 Sep 2023 04:15:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9D6DF385C6D6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1696047327; bh=v66lo55+kVSz3Rq6f8mEcOSBt0/JK6EORbiQ+GuvgAQ=; h=From:To:Subject:Date:From; b=Vt2o2J9Sbe/59B/md3WBaIxo7617zOT1U4Z4Buz4JZiaanpiccwBxNuRTCqZGsMLb 2sAf26QwSS84vvhFcfTtzslKhCZ6WxueVpB3O0NMz/DpXPbH1w3s88jEMMuCrSL4J6 gYt9lWWpZaxhk183Z8qTNRjbDitcRMBusv/vjptA= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Alexandre Oliva To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/aoliva/heads/testme)] set hardcfr eh probs X-Act-Checkin: gcc X-Git-Author: Alexandre Oliva X-Git-Refname: refs/users/aoliva/heads/testme X-Git-Oldrev: 8d56ede79121d548a9831f554fa9c4d6841cd847 X-Git-Newrev: 1d4e505ea6a19c86cff497e03ad5e9a100a2a404 Message-Id: <20230930041527.9D6DF385C6D6@sourceware.org> Date: Sat, 30 Sep 2023 04:15:27 +0000 (GMT) List-Id: https://gcc.gnu.org/g:1d4e505ea6a19c86cff497e03ad5e9a100a2a404 commit 1d4e505ea6a19c86cff497e03ad5e9a100a2a404 Author: Alexandre Oliva Date: Fri Sep 29 22:36:30 2023 -0300 set hardcfr eh probs Diff: --- gcc/gimple-harden-control-flow.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/gimple-harden-control-flow.cc b/gcc/gimple-harden-control-flow.cc index 546837a450b..05878c97843 100644 --- a/gcc/gimple-harden-control-flow.cc +++ b/gcc/gimple-harden-control-flow.cc @@ -913,6 +913,9 @@ public: = profile_probability::always (); edge e = make_edge (gsi_bb (gsi), trp, EDGE_TRUE_VALUE); e->probability = profile_probability::never (); + gcc_checking_assert (e->dest == trp); + gcc_checking_assert (!e->dest->count.initialized_p ()); + e->dest->count = e->count (); /* Set the trap's dominator after splitting. */ if (dom_info_available_p (CDI_DOMINATORS)) @@ -1276,7 +1279,13 @@ pass_harden_control_flow_redundancy::execute (function *fun) add_stmt_to_eh_lp (stmt, lp_eh_cleanup); /* Finally, wire the EH cleanup block into the CFG. */ - make_eh_edges (stmt); + edge neeh = make_eh_edges (stmt); + neeh->probability = profile_probability::never (); + gcc_checking_assert (neeh->dest == bb_eh_cleanup); + if (neeh->dest->count.initialized_p ()) + neeh->dest->count += neeh->count (); + else + neeh->dest->count = neeh->count (); } }