From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 076523858D32; Mon, 30 Jan 2023 14:39:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 076523858D32 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1675089589; bh=XxrxwQw7DfY2UU6U8+72ig/n0R2h60kcmdsQfhWwZP4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=oCAcxva7R6QfG+Xy3c318cIUbNJ7Wq6mpvzLMSFx+WszIi9U/YF/tmeerrvJhqPKP nUMDEpeq7amG2rvTaoi2R894QOuHcw6Ydfe/6zDLTrP0HTALxfWszjZW/99qqMGflJ IWiA/gricf9WcRw+0S2mAJeEKKEfqrTgjWX5X7Y4= From: "stefansf at linux dot ibm.com" To: gcc-rust@gcc.gnu.org Subject: [Bug middle-end/108102] rust bootstrap comparison failure on s390x-linux-gnu Date: Mon, 30 Jan 2023 14:39:47 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: build X-Bugzilla-Severity: normal X-Bugzilla-Who: stefansf at linux dot ibm.com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D108102 --- Comment #12 from Stefan Schulze Frielinghaus --- The culprit seems to be that s390_sched_init is not called in one particular case. We have the following basic blocks and edges: 6 --> 12 --> 13 --> 14 The edges from 12 to 13 and 13 to 14 are fall-through edges which means in function s390_sched_init we "inherit" last_scheduled_unit_distance from the previous block, i.e., we do not zero it. The edge from 6 to 12 is a non-fall-through edge which means if we schedule bb 12, then s390_sched_init will be called and last_scheduled_unit_distance will be zeroed. The culprit seems to be that bb 12 is empty if no debug information is generated or in = case debug information is generated then it contains only debug insns. Thus, in = the non-debug case when bb 12 is empty it is never scheduled and therefore s390_sched_init is never called and therefore last_scheduled_unit_distance = is never zeroed. We also see this once inspecting last_scheduled_unit_distance= at the very beginning of function schedule_block for bb 13 where we have: non-debug: 2 2 0 2 34 0 34 29 debug: 0 0 0 0 0 0 0 0 In the debug-case we "inherit" for bb 13 from bb 12 last_scheduled_unit_distance which got cleared once bb 12 was scheduled. In= the non-debug case we also "inherit" the array but it did not get cleared in bb= 12 because it was never scheduled. --=20 You are receiving this mail because: You are on the CC list for the bug.=