From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2153) id C9B8A39878FD; Thu, 17 Sep 2020 16:53:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C9B8A39878FD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1600361600; bh=YYlqYLY3y/8g3hSu7DMb5SGheEhhRxelETQBRnC2CPQ=; h=From:To:Subject:Date:From; b=rIkAuGjQ7uKaNjSt07MrAYB+2dPRAAi/eAHVm/7RzZlHw0aZV5tjUO74tqHfHf1Ic C5wMPRJ08yDzaCafEMskKacLG5fU7FP6qZ9IoiO1miSU4pjxAlyd8ZTjddlvWrS/1N 4GlBcmaFE2F1WbL/jFlaiJL9v0uZYhIfY5u2Hegw= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jakub Jelinek To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/redhat/heads/gcc-8-branch)] Backport 9297e013293e4d332fc7c40859ea4dd9616e0d88 X-Act-Checkin: gcc X-Git-Author: Martin Liska X-Git-Refname: refs/vendors/redhat/heads/gcc-8-branch X-Git-Oldrev: e16b0b4dbff0f21604897bf971eb5f9540711fb3 X-Git-Newrev: 57b0749478da2c3ca4f846f4835842c4a03c88fd Message-Id: <20200917165320.C9B8A39878FD@sourceware.org> Date: Thu, 17 Sep 2020 16:53:20 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Sep 2020 16:53:20 -0000 https://gcc.gnu.org/g:57b0749478da2c3ca4f846f4835842c4a03c88fd commit 57b0749478da2c3ca4f846f4835842c4a03c88fd Author: Martin Liska Date: Sun Mar 29 19:19:09 2020 +0200 Backport 9297e013293e4d332fc7c40859ea4dd9616e0d88 Backport from mainline 2019-09-02 Martin Liska PR gcov-profile/91601 * gcov.c (path_contains_zero_cycle_arc): Rename to ... (path_contains_zero_or_negative_cycle_arc): ... this and handle also negative edges. (circuit): Handle also negative edges as they can happen in some situations. Diff: --- gcc/ChangeLog | 12 ++++++++++++ gcc/gcov.c | 10 +++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7bdf4d03742..5d0e90eb961 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2020-03-29 Martin Liska + + Backport from mainline + 2019-09-02 Martin Liska + + PR gcov-profile/91601 + * gcov.c (path_contains_zero_cycle_arc): Rename to ... + (path_contains_zero_or_negative_cycle_arc): ... this and handle + also negative edges. + (circuit): Handle also negative edges as they can happen + in some situations. + 2020-03-29 Iain Sandoe Backport from master. diff --git a/gcc/gcov.c b/gcc/gcov.c index a99802079dc..565530d4f73 100644 --- a/gcc/gcov.c +++ b/gcc/gcov.c @@ -653,10 +653,10 @@ unblock (const block_info *u, block_vector_t &blocked, /* Return true when PATH contains a zero cycle arc count. */ static bool -path_contains_zero_cycle_arc (arc_vector_t &path) +path_contains_zero_or_negative_cycle_arc (arc_vector_t &path) { for (unsigned i = 0; i < path.size (); i++) - if (path[i]->cs_count == 0) + if (path[i]->cs_count <= 0) return true; return false; } @@ -682,7 +682,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start, { block_info *w = arc->dst; if (w < start - || arc->cs_count == 0 + || arc->cs_count <= 0 || !linfo.has_block (w)) continue; @@ -693,7 +693,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start, handle_cycle (path, count); loop_found = true; } - else if (!path_contains_zero_cycle_arc (path) + else if (!path_contains_zero_or_negative_cycle_arc (path) && find (blocked.begin (), blocked.end (), w) == blocked.end ()) loop_found |= circuit (w, path, start, blocked, block_lists, linfo, count); @@ -708,7 +708,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start, { block_info *w = arc->dst; if (w < start - || arc->cs_count == 0 + || arc->cs_count <= 0 || !linfo.has_block (w)) continue;