From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 71A743865488; Fri, 10 Feb 2023 14:49:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 71A743865488 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1676040551; bh=jMmC+Pj98qN4tXpVevp0m02kkginuvAw/skSFsFgiDE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=jua3FMJAxYr5eULlea/mGfhkxj2hOhtLFCb9wa4WkJ8oAg7ltbT3tWkoYuz8830T3 SDnj3OXq+9ejjuRNvQN4j/EdEm9r11x4lq5bDYfxWG2l0Cuw1LVRIp4Rv7rIfgiNF1 KvKafPcwvVirFG2C71WolRvub86ifZnghubfMIg4= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/108687] [13 Regression] Non-termination since r13-5630-g881bf8de9b0 Date: Fri, 10 Feb 2023 14:49:10 +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: 13.0 X-Bugzilla-Keywords: compile-time-hog X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.0 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=3D108687 --- Comment #11 from CVS Commits --- The master branch has been updated by Andrew Macleod : https://gcc.gnu.org/g:6493b7af37e473a89c67afab474330f931dd8447 commit r13-5807-g6493b7af37e473a89c67afab474330f931dd8447 Author: Andrew MacLeod Date: Thu Feb 9 17:50:07 2023 -0500 Query rangers cache in readonly mode only from within The change for 108356 allowed the cache to scan the dominator trees when it was attempting a lookup rather than using the local value. I inadvertantly changed the externbal interface to also do this, so all the GORI queries via range_on_edge of the cache could also do lookups. This triggered a quadratic, possible expoential time increase when the right conditions were presented. That being a cascading series of recomputaions on outgoing edge calucaltions that at then searched the d= om tree instead of being a simple calcualtion using whats easily available. The fix is to use the internal API within the cache rather than the extrenal one that GORI uses. This leaves GORI computations to be resovled in linear time. PR tree-optimization/108687 gcc/ * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert back to RFD_NONE mode for calculations. (ranger_cache::propagate_cache): Call the internal edge range A= PI with RFD_READ_ONLY instead of changing the external routine.=