From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 6CEA53858C2A; Mon, 26 Jun 2023 14:05:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6CEA53858C2A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687788317; bh=lcKKYtTtal/IAipQOVy3vLDgRu6M76x35W86hSSXHfk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=gcEgKyQc5C6vAwVXjLoJ3JUYCHaEGST2kg4B95DXRbcdky9ckQP0xwGrjRs4+ZFm0 QF7iNgBryhUu6f8vKzyg2zoP4WsKvU4Q6JMgKVMjM6jBTt//9Cyc54LSsk3XjSf1+G sydnuHbRoL3JjGzQJBZ8x/sudN7tX7ahRIecKCJU= From: "amacleod at redhat dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/110251] [13/14 Regression] Hang at -O3 on x86_64-linux-gnu Date: Mon, 26 Jun 2023 14:05:16 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: compile-time-hog X-Bugzilla-Severity: normal X-Bugzilla-Who: amacleod at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.2 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=3D110251 --- Comment #7 from Andrew Macleod --- (In reply to Andrew Macleod from comment #6) > bah. >=20 > Ranger hang is resolved with: >=20=20 > commit 4dfeb1cd8dfca234186216d891ec8f46235c3a14=20 > Date: Thu Jun 22 10:00:12 2023 -0400 >=20 > Avoid redundant GORI calcualtions. When GORI evaluates a statement, if operand 1 and 2 are both in the dependency chain, GORI evaluates the name through both operands sequentially and combines the results. If either operand is in the dependency chain of the other, this evaluation will do the same work twice, for questionable gain. Instead, simple evaluate only the operand which depends on the other and keep the evaluation linear in time.=