From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2140) id 11CA438754BE; Sat, 30 Sep 2023 02:30:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 11CA438754BE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1696041039; bh=Yelrx2YtR7BHdpyEhdQXGmFKcsCVWOAKSVcGntVwdLs=; h=From:To:Subject:Date:From; b=Q5LaCOT/LSqV2f8spev1no4NQOKqM4yF4dBdoYrKF8SdqVk+mh40m7Akycx9ztVF9 ikWIWuvdA2i6OfTspNK2lvyYZe8Tw2sCRREbBVUa0vYjejrIWDX9YEf6LwKaM0WHop 0k1Vz+UQovhVUS/wgKAALgXIsQQMPz1lziwMfvWs= 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: cbf7426f8270068b0cfd297b34217d9170fa3d66 X-Git-Newrev: 55a5601fc690019bd34f2dc6ce2c66edd1024740 Message-Id: <20230930023039.11CA438754BE@sourceware.org> Date: Sat, 30 Sep 2023 02:30:39 +0000 (GMT) List-Id: https://gcc.gnu.org/g:55a5601fc690019bd34f2dc6ce2c66edd1024740 commit 55a5601fc690019bd34f2dc6ce2c66edd1024740 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 (); } }