From patchwork Tue Oct 18 01:05:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew MacLeod X-Patchwork-Id: 3859 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp1717854wrs; Mon, 17 Oct 2022 18:06:18 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6VlOc+rfMa5Xc9r/FF6UP/u3DQcqjfDLKKboh89ueS6pjOtIOTgUZ6sbQOjNuXwbCL0AwH X-Received: by 2002:a17:907:2cce:b0:77a:6958:5aaa with SMTP id hg14-20020a1709072cce00b0077a69585aaamr312581ejc.245.1666055177838; Mon, 17 Oct 2022 18:06:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666055177; cv=none; d=google.com; s=arc-20160816; b=s91Og0hCf3LZmhjTBznf1TWD725ivCw7sJerDKr95Zzr4YBLmIn0p1vHuDFi6/X6x4 qkcL42oJqk6s31Etd0NA7TUWj0p1wZeMGKoWqO2G/22Iqp83Z7KGBGqXgrcdcD0/enbn /bWyKFAA5olIpA7RZ0WWEI3IAoj2FzA+1g4217QBxsEje8RCaOV0q6vkF3KWDMywjPT5 s4OqB9/OVl56Cy8/dSZZy9l669KAHLn/noOVjo2Xf1nF4FS6Kn4SnCdYgraYTm+LGVqN xtkOU4Hgab8i/V4VLcVjSNxa5y9e2GHaD6uqWIqZBT5rFpyot7zLBozBEGBiWwfIlVDC t/KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:content-language :subject:to:user-agent:mime-version:date:message-id:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=3k3XAmgnTDS3XQ9n3GbIbd2q3i3uf7Nf1ZZ7FPveINs=; b=0Eibx6pJ5Q+52V8JAwTLMuQ/Qcbj0sBcRke8AyeLPNiQPoTlLct8s9N/LVZk5MWUqI cp13QhasRMwiAWfxfV3ksvld2MyEtN4s1+WIKlhUeRUh3ifGdWjAzlP7yuoYsbIDgBeE vPCloc7ZAVjeOPO0zxxKnCWrN23xFNAksJ1TpIVEMYysHfiCwbFrjjGkSTIs2mRutBj3 Y4TOZABjRIIkNXrkoNWj30ktlad9wyEWSdVBN5k/fK3/8H1Zk9DeeqIcNKR2T+BWH23u 3ONQ/K9x763kSRcUPBH8zD4eFp+f9Q8VlAng4apmlFrwKtUAIsTybkflnES6KqnhS849 Ch0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="tN/JnEMS"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h16-20020a05640250d000b0045a1e2373dbsi11953627edb.44.2022.10.17.18.06.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Oct 2022 18:06:17 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="tN/JnEMS"; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CAE813857360 for ; Tue, 18 Oct 2022 01:06:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CAE813857360 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666055170; bh=3k3XAmgnTDS3XQ9n3GbIbd2q3i3uf7Nf1ZZ7FPveINs=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=tN/JnEMS9b2/4VNV3VtwvhNz6FOWNPuqIilHWD79y3+FBVrVjTxLwVGyQ4KkgICn4 kIQuzYAsC4oyculmU7gjGtYaaQc36lJI7PGrNSLsVtKGcgNET3xmcQilA6U2ZXY+rP QThxIQYYzDFK5bxyOmITRgNi9/AAVM4TYwDLyO98= 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 4039A385802D for ; Tue, 18 Oct 2022 01:05:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4039A385802D Received: from mail-il1-f198.google.com (mail-il1-f198.google.com [209.85.166.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-54-qdyh8wcIMLeL75Dp4hPyIQ-1; Mon, 17 Oct 2022 21:05:21 -0400 X-MC-Unique: qdyh8wcIMLeL75Dp4hPyIQ-1 Received: by mail-il1-f198.google.com with SMTP id y13-20020a056e021bed00b002faba3c4afbso11038942ilv.13 for ; Mon, 17 Oct 2022 18:05:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=ip6c5BX8ftpDg45F7KfO+1Vovd4abthEr96WKR8w8xg=; b=iERiYEjfWLGXI5gI2FXH+7SfnDTES2BMZ+YcmgrPMQWjBJU+udamUz4cehPX7xpP5D RT6Yca84C/OljqwRNmgd41C3Slu4RNK8JS6C5VAcFLXw1DfyKqOh1EIiNVPji9apJL4f Lp/G6TOyJHYcZYRBQCmM2Q1Ht4amGhjDnSWsSy1ziHr0GwI0XLO8GDVCq/CEchD1dlif IaW8a7OfuOJoZPM+OjcXGfJUfp1UFFmDSi92J6nXSUxPnBCMG5vWALxl7DIF4vl9mwlu L1UWa1qk2G+DhdtFsPCm3cx0xmVgI7jap25/ZfzVYgQ4oO5J5HvSTn/M2MNYtNwD/Nu6 siVA== X-Gm-Message-State: ACrzQf3NxRm60NggWG9jCaHyH1Q/vhz+zUPABqb9/7TmoBjX3M/SHzYA IdvnUUY4MgfknC7G7FxY6Lkns6cUG14DD+uD4+EXREMFHdJ2+0BlroA1SejS8YKo5leXcZ3JPnh h0O3+IaUz/qbFn3HkWB3xZ69X/KwFmmVx0MOE20dOvtp7JQlGk88qriJyZPqjHf1RX3U8Pw== X-Received: by 2002:a05:6638:2194:b0:363:a88a:6016 with SMTP id s20-20020a056638219400b00363a88a6016mr586199jaj.223.1666055120212; Mon, 17 Oct 2022 18:05:20 -0700 (PDT) X-Received: by 2002:a05:6638:2194:b0:363:a88a:6016 with SMTP id s20-20020a056638219400b00363a88a6016mr586175jaj.223.1666055119913; Mon, 17 Oct 2022 18:05:19 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::50d4? ([2607:fea8:a263:f600::50d4]) by smtp.gmail.com with ESMTPSA id t4-20020a92ca84000000b002fab1376ba0sm441888ilo.85.2022.10.17.18.05.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 Oct 2022 18:05:19 -0700 (PDT) Message-ID: Date: Mon, 17 Oct 2022 21:05:17 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 To: gcc-patches Subject: [COMMITTED] PR tree-optimization/107273 - Merge partial relation precisions properly. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US X-Spam-Status: No, score=-12.2 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_H2, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Andrew MacLeod via Gcc-patches From: Andrew MacLeod Reply-To: Andrew MacLeod Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1746985474098855834?= X-GMAIL-MSGID: =?utf-8?q?1746985474098855834?= When a partial equivalency record is merged, the existing members are updated.  The resulting PE size for each member should be the minimum of what it was, and the size of the object it is now based on.  The code was simply setting it to the new size, which sometimes overwrote the correct result. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew commit 0205fbb91be022055c632973caa95e398b33db39 Author: Andrew MacLeod Date: Mon Oct 17 19:00:49 2022 -0400 Merge partial relation precisions properly When merging 2 groups of PE's, one group was simply being set to the other instead of properly merging them. PR tree-optimization/107273 gcc/ * value-relation.cc (equiv_oracle::add_partial_equiv): Merge instead of copying precison of each member. gcc/testsuite/ * gcc.dg/tree-ssa/pr107273-1.c: New. * gcc.dg/tree-ssa/pr107273-2.c: New. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr107273-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr107273-1.c new file mode 100644 index 00000000000..db2e2c0da55 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr107273-1.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ +/* { dg-options "-O3" } */ + +int printf(const char *, ...); +int a[1] = {1}; +short b, c = 5500; +int d; +long e; +char f = 1; +int main() { + while (1) { + long g = b < 1; + e = g; + break; + } + for (; f; f--) { + if (e) { + d = -(6L | -(c & 1000)); + } + char h = d; + if (b) + b = 0; + if (d < 200) + while (1) + printf("%d", a[c]); + short i = h * 210; + c = i; + } + return 0; +} + diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr107273-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr107273-2.c new file mode 100644 index 00000000000..337450782d9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr107273-2.c @@ -0,0 +1,27 @@ +/* { dg-do run } */ +/* { dg-options "-Os" } */ + +int a, d, f; +char b, g; +unsigned i; +int main() { + int c = 300, h = 40; + char e = 1; + for (; a < 1; a++) { + c = ~((i - ~c) | e); + L1: + e = f = c; + if (c) + if (c > -200) + e = g % (1 << h); + char k = 0; + L2:; + } + if (b) { + if (d) + goto L2; + if (!b) + goto L1; + } + return 0; +} diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc index fed8a78723c..178a245f41a 100644 --- a/gcc/value-relation.cc +++ b/gcc/value-relation.cc @@ -380,7 +380,7 @@ equiv_oracle::add_partial_equiv (relation_kind r, tree op1, tree op2) EXECUTE_IF_SET_IN_BITMAP (pe1.members, 0, x, bi) { m_partial[x].ssa_base = op2; - m_partial[x].code = pe2.code; + m_partial[x].code = pe_min (m_partial[x].code, pe2.code); } bitmap_set_bit (pe1.members, v2); return;