From patchwork Tue Apr 30 21:24:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew MacLeod X-Patchwork-Id: 1929858 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=S8YDPXl8; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VTYBM6jTmz23hd for ; Wed, 1 May 2024 07:24:59 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2A0293858404 for ; Tue, 30 Apr 2024 21:24:58 +0000 (GMT) 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 ESMTPS id 0DD7E3858C56 for ; Tue, 30 Apr 2024 21:24:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0DD7E3858C56 Authentication-Results: sourceware.org; dmarc=pass (p=none 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 0DD7E3858C56 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714512273; cv=none; b=FUxMQ5eUm7Yppm9zPaljLZubCS8PbKUNP1IkwTCYolnoqaFERJdvAlucgUFDmZSIXoNYei6OZAuP1tDUi/iJYzmHeVWWeEi/HFgZNFvtGFIbqVm6L20hQrrTeEmFJm2OLZablT4o218JHJN6Ec206PSrz0jCv4M8QdO023bmP14= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1714512273; c=relaxed/simple; bh=b7ivi+yc2JYfvwr1JSAi7LGPqPg3T5Adaj4xDzCZIUo=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=B6eK/twN+ij5grkcwt5koLRxZ7XVN7ff+oaHaspmA3mDrEFMPZxYqWrPxobaFnGeJw/0jF0Sc0T7fr7ckbpYl+ypC63fl6noQ7qzhIT6ACsRIHQTQXZnyr2eJsSykbfpX57U/pK+Kb6YwrJoS0+BGPofVdTaztFGyoaPdxNFGjw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714512267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=nEc98wU59OAp/sDIukk4hgMBImKSj7viEkdRGOw3O4I=; b=S8YDPXl8Q/isyEvdFQT5r0CeSJwCkRVm9NzbVxWXrRIW2Ga6jZ7/JEQcwobyjIs66zF7Uw BKOfjX61u+KpDQB3eC7ggIg5ZCQmrOn8DDtWwqNwpPnsRakSiG9SzeL/vGpwfDri87uCn2 8JIb3YxJn1G1VylVCDbEL0QzEG7SJu0= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-84-ISvsz3fIN6iUH4g6XQhKBQ-1; Tue, 30 Apr 2024 17:24:24 -0400 X-MC-Unique: ISvsz3fIN6iUH4g6XQhKBQ-1 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-43ace079ba1so36630791cf.0 for ; Tue, 30 Apr 2024 14:24:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714512263; x=1715117063; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9mTrnukqWiY3ReRyHBrmuo+W98iLJEBqusGuc2pI4sU=; b=FlfT9YphxPd7X/m34K9rXL+YlIJnAaYaRFRVqlPoZX3x8n/cCuVBWM91k5XbrsriUE ZGTdsVTYj3WGALvONqo1vdUWAoGkrj9ebeXpbnL4XERrrYWdOkDBiwU+6G+n4OSueSML U3dHwT/KqAW/VXFIkVlQqeKCStLDRFohXHw4V9j+89BXE4Q/3Kf22rG9G41NUdsgbR+f 4tnl7MkU2Q1RmXU2pf06m30CWe7JiA43/JzvFU27X9knNiiXi3HuC20spUZXWoEzADRd 4/Rw3EhLjWQBqmRw36QWCM4v1Pwga/JAfufK8lNMwvu8iZruw7K20mPvDAKa7SoOu5K+ KkyQ== X-Gm-Message-State: AOJu0Yxau2qDrveS1jtbIj8B0fmP8N6+y2KTeOhttrxVbF/eMSPmiNcg YUhtKJHUVGKJmMKXKjBNP1MEx7AxdWvTWf7GK6r8zGXCJF9N2j8VGslgcQ6iLQAQDSQCC7Zgq8T 2NWB3D36urfS9ossja895p3Ww8qQX6NYfwIW7ti4UuZxfXmsmBhgMF+ukGXk+5iN1OBoFcxnc4b V6QZldplULZ1H8F+tM/LWTOdOsxWLudDiC5ZtoI6c= X-Received: by 2002:a05:622a:3ca:b0:43a:a8ad:1131 with SMTP id k10-20020a05622a03ca00b0043aa8ad1131mr459151qtx.5.1714512263409; Tue, 30 Apr 2024 14:24:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHTUsjDlf0/lXl1X+2GyFMgLVL0vTUS9wFl6gVjGvKDiRO5XkejJGj1sSNYNzSI/huBDo4NQw== X-Received: by 2002:a05:622a:3ca:b0:43a:a8ad:1131 with SMTP id k10-20020a05622a03ca00b0043aa8ad1131mr459143qtx.5.1714512263067; Tue, 30 Apr 2024 14:24:23 -0700 (PDT) Received: from [192.168.0.174] ([104.219.121.64]) by smtp.gmail.com with ESMTPSA id h5-20020ac85485000000b00439cccb91b2sm7868097qtq.73.2024.04.30.14.24.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Apr 2024 14:24:22 -0700 (PDT) Message-ID: <7e388f53-180d-49bd-912f-6f06f52d46e0@redhat.com> Date: Tue, 30 Apr 2024 17:24:22 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [COMMITTED 3/5] Invoke range_of_stmt on ssa_names with no context. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-Spam-Status: No, score=-12.1 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_H4, RCVD_IN_MSPIKE_WL, RCVD_IN_SORBS_WEB, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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+incoming=patchwork.ozlabs.org@gcc.gnu.org If range_of_expr is called on an ssa-name with no context, ranger just grabs whatever the global value is. It was pointed out we can do better than this.  If the name is in the IL, there is no reason for ranger to not try to fold the statement and see if we get a better result for it.   It removes an unnecessary penalty when there is no statement given for context. This requires a tiny bit more work, sometimes for no benefit. However, the slowdown is also marginal. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From cca3c4f2e7075fe613ac1cd67a3e1743faf33505 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Mar 2024 14:13:28 -0400 Subject: [PATCH 3/9] Invoke range_of_stmt on ssa_names with no context. Evalaute ssa-names when range_of_expr is called with no context statement by calling range_of_stmt to get an initial value. * gimple-range.cc (gimple_ranger::range_of_expr): Call range_of_stmt when there is no context stmt. --- gcc/gimple-range.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc index 4d3b1ce8588..3966cfbd14c 100644 --- a/gcc/gimple-range.cc +++ b/gcc/gimple-range.cc @@ -102,7 +102,15 @@ gimple_ranger::range_of_expr (vrange &r, tree expr, gimple *stmt) if (!stmt) { Value_Range tmp (TREE_TYPE (expr)); - m_cache.get_global_range (r, expr); + // If there is no global range for EXPR yet, try to evaluate it. + // This call sets R to a global range regardless. + if (!m_cache.get_global_range (r, expr)) + { + gimple *s = SSA_NAME_DEF_STMT (expr); + // Calculate a range for S if it is safe to do so. + if (s && gimple_bb (s) && gimple_get_lhs (s) == expr) + return range_of_stmt (r, s); + } // Pick up implied context information from the on-entry cache // if current_bb is set. Do not attempt any new calculations. if (current_bb && m_cache.block_range (tmp, current_bb, expr, false)) -- 2.41.0