From patchwork Thu Jul 16 16:18:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew MacLeod X-Patchwork-Id: 139351 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3AE6D4BA2E1F for ; Thu, 16 Jul 2026 16:18:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3AE6D4BA2E1F Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=NEW+W64U X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 9D9334BA23C6 for ; Thu, 16 Jul 2026 16:18:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9D9334BA23C6 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9D9334BA23C6 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784218686; cv=none; b=XWyoSr+qAxAP1kwZvMp3duYlnHJGIwwXIF6y7UgNzzR8fjvgQOzwaI+ah/UvnorXy7kL1X+dZ/RiciRE1K+shqJN9bdqiCxRqY3ImZ3tSglCZGI/wyquUM82TQKR3XMSbi745r+JjfRcg/CvsG/mF8UGq7x7AUJWp/YM3F9IDFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784218686; c=relaxed/simple; bh=owmTPLsXU/xUzUzErphVARw7xgONWOil6UJuLgXX2rA=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=kdgoQdJiEaG+BvvulA//EhiqgwiRzDS2At+ahr9D+kYjZtgjWX3h1nOsGlkYm5r1vrc2aGl5JSmAtImYK3H6/6b6nBRb5tFm/EO4SuH+l8XErS7CPWRCLuyl3aUAiSGduXmLPjOs3YI0/03bzPKCnSdKTE6kgWZoO4hcFf4L1s0= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=NEW+W64U DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9D9334BA23C6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1784218686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=lAz5k6IS+eBz+wGIdIoIOer+OKbBO5mo9uawLO8+nU4=; b=NEW+W64UJ0QerDyoepWtTN/F/A5yaNO8afa+aw3RfsnCdshOWx4Z+TuORgYuESywdzlp8E xlhUjXmrvRnxPrQCA/p++y7KhQy2R4pbVujA4GN0SCJ+uVoF1KdEWjCEe/1k8am5tzdx19 eehtoF4BIsX+AKHxiGEWwhe1ocNRzZY= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-488-mSaSUCzQNJ-YPIRaJEbLvg-1; Thu, 16 Jul 2026 12:18:04 -0400 X-MC-Unique: mSaSUCzQNJ-YPIRaJEbLvg-1 X-Mimecast-MFC-AGG-ID: mSaSUCzQNJ-YPIRaJEbLvg_1784218684 Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51c0408254aso4883521cf.0 for ; Thu, 16 Jul 2026 09:18:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784218684; x=1784823484; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:content-type:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=jB1FgyywxoEgPQ9x/OdmV3zRa5uQ9ke26JRL5JMY0y8=; b=S5Y/bZS5R+qZERkbUHyTxwN+p9MOznUl2XunKM1MVQWR/4bHlEB+df6ilDOt6uqsH5 M2rOdRHtn6fACcrxmlTKrUnclzZF43ypB/Vjc72ljHDgvH5iCrqP+HoQ3N+8Fz//6JYe kyMBCMKoFNhT8yoU5QM3ENqEV7pcYzsU+NHRkfulCym862k8gkOAu5Wi3fmE+eGuiCkI ejtMcHpZMfejYGIQqVnVn+ARylmKDBeeVJ8mnZcQ9WDIRIny8CFVvqR5REOGModc8EAP wZsgFJ35vUz6hQLsF98jwIK90s9e0WqRcTk6O0Pqn+Jh4INHq8r/CNbM+TnOcnyLIM7s SpzQ== X-Gm-Message-State: AOJu0YyRibOFemR/7e1FEx+MiO+9ev5uiMHy9hUbJ01YyfQn0iASheg8 FZ1Ry/bODy860D91xS4rrFlJ9IW+ZREYPEjz3SU733EEOA/3SY90Y8DcAxV73qpp8cb5sTaD9bE DFuAfRvjV4slKfJwCkp/oykklLPc4bWRyU+v0MNAejXrHhU0ECoetqSLcXaCNDXqkmpulJO92uj nHM6Bs0ZCFZbiAva2AtBLC74LOrJdmyQyjVEAGutV+28s= X-Gm-Gg: AfdE7cmbIMSoLmbE5i82B1EMOBqsT65ARWLZNYkMHJjQMsiJ/8Z8ghtCY1WP407ctr1 fed5Gq6F5qhzHgr4r7zRJ+QNW+GdHh1XZygEUIS0L7LTpzvMDXaKbE1+yI6MahanD8NFC2S9Vk0 kW+EhoCYSilfdV2iyLNvm6dVgElfCexvfB5R/XbKSRlHQ5kd5JZpHHOzJzi9zA2mfPeJIoI1gVX D7z7jtH77X9riYZDofLcaqU1AG5mUZEqgTrG3JTE07UTA323l6r8l7rdmYTSjCIWZGGhDpuEcpT 7pa7guyMt7jtY+bFNZmhJpeJS78e+BjV1UeSl1gcwPr2aq5FAl4E3c1u1s1ZAqU2UmozZi7A7tu laGsJRl1KoPW11LhdFhd06FqDel7s+UT/Cb8ruTWcbAJ97QpUdVU+ZrKG X-Received: by 2002:a05:622a:406:b0:51a:8c86:bd2e with SMTP id d75a77b69052e-51fc0ea319emr34913371cf.35.1784218683655; Thu, 16 Jul 2026 09:18:03 -0700 (PDT) X-Received: by 2002:a05:622a:406:b0:51a:8c86:bd2e with SMTP id d75a77b69052e-51fc0ea319emr34912791cf.35.1784218682972; Thu, 16 Jul 2026 09:18:02 -0700 (PDT) Received: from [192.168.50.227] (pool-99-240-144-210.cpe.net.cable.rogers.com. [99.240.144.210]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-51caae206b6sm159164931cf.14.2026.07.16.09.18.01 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Jul 2026 09:18:02 -0700 (PDT) Message-ID: <7c344b63-5187-444b-a6ac-b4569a60fe19@redhat.com> Date: Thu, 16 Jul 2026 12:18:00 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: gcc-patches From: Andrew MacLeod Subject: [COMMITTED] PR tree-optimization/125986 - Path ranger should check root ranger equivalencies as well X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: F2M0s6W-dSNYpGzML9-v8gNaOMKBwmE4qy0rJesqr-I_1784218684 X-Mimecast-Originator: redhat.com Content-Language: en-US X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_PBL, SPF_HELO_PASS, SPF_NONE, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org When the path ranger cannot find a relation from within the path, it invokes a relation query from the root ranger.  It only does that however if all the equivalencies it found within the path are not in the killed_def vector.. meaning no DEf was seen on the path.  And when this is satisifed, it queries the root ranger with its current know equivlence sets. There are 2 problems with this.  1 - if any equivalence def is killed in the path, no query between the original ssa_names to the path entry will be made, meaning we can miss known relations coming into the path,  2 - Because the call is made with the equivlence sets, no known equivlences outside the path will be utilized either. This patch adds a check that if we find nothing, query the root ranger from the entry block of the path for the 2 specified SSA names.  This will then do a dom search of what the root ranger knows in the dom tree, including its equivlence sets. Bootstrapped on x86_64-pc-linux-gnu  with no regressions. Pushed. Andrew From f156f181501466fba35b3b9e83f80604fa4da2f0 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 15 Jul 2026 15:43:14 -0400 Subject: [PATCH 1/3] Path ranger should check root ranger equivalencies as well. Path ranger currently checks the root ranger for realtions between only local equivalencies. If that fails, it should also check the root ranger for any equivalencies and relations between the two names which occur earlier in the IL. PR tree-optimization/125986 * value-relation.cc (path_oracle::query): Query root oracle for relations. --- gcc/value-relation.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc index 932bb070dad..3ad522ccf64 100644 --- a/gcc/value-relation.cc +++ b/gcc/value-relation.cc @@ -1710,6 +1710,7 @@ path_oracle::query (basic_block bb, const_bitmap b1, const_bitmap b2) || bitmap_intersect_p (m_killed_defs, b2)) return k; + // Query the root oracle for relations with path local equivalencies. if (k == VREL_VARYING && m_root) k = m_root->query (bb, b1, b2); @@ -1733,7 +1734,12 @@ path_oracle::query (basic_block bb, tree ssa1, tree ssa2) if (bitmap_bit_p (equiv_1, v2) && bitmap_bit_p (equiv_2, v1)) return VREL_EQ; - return query (bb, equiv_1, equiv_2); + relation_kind rel = query (bb, equiv_1, equiv_2); + + // If the path relation query fails, check for relations in the root oracle. + if (rel == VREL_VARYING && m_root) + rel = m_root->query (bb, ssa1, ssa2); + return rel; } // Reset any relations registered on this path. ORACLE is the root -- 2.45.0