From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 2D8B4388B6A5 for ; Fri, 24 Mar 2023 15:52:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2D8B4388B6A5 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679673154; 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: in-reply-to:in-reply-to:references:references; bh=wUKenhsEekGXQQm6mrQKeL0vOqjuqx20hBL8CJa0Q0c=; b=DZg2R7X9r/+IGawHOsb9x4S2W0/Ef6JZxZiUt5J2LIT/vUHmvq/r/L8QVmkxImOl9fSgv0 YtKp1GCZ3tcGltQH2rQsPp63xETFJVpuwvQbVs9Y7z8+ZnRmgrMq0niFpX1tPeCjKZmCW4 U6rd7wfJ832eou5Jxk1pAedJJSrYjHE= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-279-2d1W3vVrOZOmDbYTMZ-87w-1; Fri, 24 Mar 2023 11:52:33 -0400 X-MC-Unique: 2d1W3vVrOZOmDbYTMZ-87w-1 Received: by mail-qk1-f200.google.com with SMTP id 72-20020a37044b000000b0074694114c09so981565qke.4 for ; Fri, 24 Mar 2023 08:52:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673153; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=QtLi7mMxQZ3Mj1vgaN8LvhBJM3TzHcXGHIZPvG4AOmM=; b=nrmY0qEWQJv9KW6Jq/7N6RPGS8uBJJ5oVXlUXTAB/i2W5ffkYvaElJSBnATLo7ncGc yKyD9CNnNL9+CDSiatqOO4IWhsUpXacoL8ALTPeVbK/AAIkXfYTDvY8F9r26RQdB9ip2 kAoMdUtPBxaVQsTgdca+3rg6MIUpNScswVWcVE95cCxKfUDQAuTSZjpNYY1QoO4pwJJW j1m3Xv2Xv1thP1pQsCZ44wBS3/hKNrPAI55HpRWC+NbFDJR7MjR4ODtS8mv0VQ8CGfNM +u63fUXI/Nn96IFw0bLFXyn2czn1H10wMFXP2Iy05YOTSqY5q+fgR6765MlvBb9qDuHL EJ7g== X-Gm-Message-State: AO0yUKVBBY+3ZIfxtbe4rQ5aKon6S9HdcrgLV/w30JdWTlb/Jwf/Etcy gtuJ2FhVuzARug1RqWmXCHP+CENBp0OJ+9U07cc0/1xdPUG1hL2S0pNESq8XUep6vasDvfCy3g7 od4nNryY4GEOhleufzg== X-Received: by 2002:ac8:7e95:0:b0:3e2:1d5e:cf71 with SMTP id w21-20020ac87e95000000b003e21d5ecf71mr6283997qtj.45.1679673152847; Fri, 24 Mar 2023 08:52:32 -0700 (PDT) X-Google-Smtp-Source: AK7set+GY6zEX+rXBrfD8xufN7jRJecNETLRIbjd7HLMBDGutAmDlAE3FXNKrd8cwUEvouBg4aBNyw== X-Received: by 2002:ac8:7e95:0:b0:3e2:1d5e:cf71 with SMTP id w21-20020ac87e95000000b003e21d5ecf71mr6283965qtj.45.1679673152556; Fri, 24 Mar 2023 08:52:32 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::759b? ([2607:fea8:a263:f600::759b]) by smtp.gmail.com with ESMTPSA id o197-20020a3741ce000000b0073b575f3603sm14348043qka.101.2023.03.24.08.52.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Mar 2023 08:52:32 -0700 (PDT) Message-ID: <86a51d9f-209b-33c4-053f-530210266c4c@redhat.com> Date: Fri, 24 Mar 2023 11:52:30 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH] PR tree-optimization/109274 - Don't interpret contents of a value_relation record. To: Jakub Jelinek Cc: gcc-patches , Richard Biener References: <2e0b9177-f8ce-d55a-d6bb-71eb89a9700d@redhat.com> From: Andrew MacLeod In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------cXj3imiFGs3uu7SHGdCoCAPL" 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,NICE_REPLY_A,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 List-Id: This is a multi-part message in MIME format. --------------cXj3imiFGs3uu7SHGdCoCAPL Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Thanks.. Ive incorporated it into my commit  too. Andrew On 3/24/23 11:15, Jakub Jelinek wrote: > On Fri, Mar 24, 2023 at 11:08:54AM -0400, Andrew MacLeod wrote: >> Before floating point relations were added, we tried to sanitize >> value-relation records to not include non-sensensical records... ie x != x >> or x < x.   Instead, we made a VREL_VARYING record with no operands. >> >> When floating point relation support was added, some of these were no longer >> non-sensical, AND we expanded the use of value_relation records into GORI >> shortly thereafter. >> >> As a result, this sanitization is no longer needed, nor desired. The Oracle >> does not create records with op1 == op2 already, so its only within GORI >> that these records can exist, and we shouldn't try to interpret them. >> >> The bug occurs because the "sanitized" records doesn't set op1 and op2, and >> changes the relation to VARYING..  and we expected the operands it to be set >> the way they were specified.  We should not be setting a VREL_VARYING record >> if asked to set something else.  In fact, we are missing some opportunities >> because we are trying to FP range-ops that op1 != op1  but its getting >> transformed into a VREL_VARYING record and not communicated properly. >> >> Currently bootstrapping on x86_64-pc-linux-gnu and assuming no regressions, >> OK for trunk? >> >> Andrew >> commit 1f02961b23976d35b10e2399708c6eb00632f9d6 >> Author: Andrew MacLeod >> Date: Fri Mar 24 09:18:33 2023 -0400 >> >> Don't interpret contents of a value_relation record. >> >> before floating point relations were added, we tried to sanitize >> value-relation records to not include non-sensensical records... ie >> x != x or x < x. INstead, we made a VREL_VARYING record with no > s/IN/In/ > >> operands. >> >> When floating point relations were supported, some of these were no >> longer non-sensical, AND we expanded the use of value_relation records >> into GORI. >> >> As a result, this sanitization is no longer needed. The Oracle >> does not create records with op1 == op2, so its only within GORI >> that these records can exist, and we shouldnt try to interpret them. > s/shouldnt/shouldn't/ >> >> The bug occurs because the "sanitized" records doesnt set op1 anmd op2, > s/doesnt/doesn't/ > >> but we have a record so expected it to be set. >> >> PR tree-optimization/109265 >> PR tree-optimization/109274 >> gcc/ >> * value-relation.h (value_relation::set_relation): Always create the >> record that is requested. >> >> gcc/testsuite/ >> * gcc.dg/pr109274.c: New. > LGTM, indeed with floating point a != a isn't nonsensical but basically > __builtin_isnan (a) check. > > I'll commit the Fortran testcase I've added in my version of the patch > incrementally when you commit. > > Jakub > --------------cXj3imiFGs3uu7SHGdCoCAPL Content-Type: text/x-patch; charset=UTF-8; name="274b.diff" Content-Disposition: attachment; filename="274b.diff" Content-Transfer-Encoding: base64 Y29tbWl0IDJkOGVmMjk2ZjQzYzkzMGExODIyODE3ZTMyODA1MzljZTVlNzA3NWIKQXV0aG9yOiBB bmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KRGF0ZTogICBGcmkgTWFyIDI0IDEx OjIxOjIwIDIwMjMgLTA0MDAKCiAgICBEb24ndCBpbnRlcnByZXQgY29udGVudHMgb2YgYSB2YWx1 ZV9yZWxhdGlvbiByZWNvcmQuCiAgICAKICAgIEJlZm9yZSBmbG9hdGluZyBwb2ludCByZWxhdGlv bnMgd2VyZSBhZGRlZCwgd2UgdHJpZWQgdG8gc2FuaXRpemUKICAgIHZhbHVlLXJlbGF0aW9uIHJl Y29yZHMgdG8gbm90IGluY2x1ZGUgbm9uLXNlbnNlbnNpY2FsIHJlY29yZHMuLi4gaWUKICAgIHgg IT0geCBvciB4IDwgeC4gICBJbnN0ZWFkLCB3ZSBtYWRlIGEgVlJFTF9WQVJZSU5HIHJlY29yZCB3 aXRoIG5vCiAgICBvcGVyYW5kcy4KICAgIAogICAgV2hlbiBmbG9hdGluZyBwb2ludCByZWxhdGlv bnMgd2VyZSBzdXBwb3J0ZWQsIHNvbWUgb2YgdGhlc2Ugd2VyZSBubwogICAgbG9uZ2VyIG5vbi1z ZW5zaWNhbCwgQU5EIHdlIHNob3J0bHkgZXhwYW5kZWQgdGhlIHVzZSBvZiB2YWx1ZV9yZWxhdGlv bgogICAgcmVjb3JkcyBpbnRvIEdPUkkuCiAgICAKICAgIEFzIGEgcmVzdWx0LCB0aGlzIHNhbml0 aXphdGlvbiBpcyBubyBsb25nZXIgbmVlZGVkLiAgVGhlIE9yYWNsZQogICAgZG9lcyBub3QgY3Jl YXRlIHJlY29yZHMgd2l0aCBvcDEgPT0gb3AyLCBzbyBpdHMgb25seSB3aXRoaW4gR09SSQogICAg dGhhdCB0aGVzZSByZWNvcmRzIGNhbiBleGlzdCwgYW5kIHdlIHNob3VsZG4ndCB0cnkgdG8gaW50 ZXJwcmV0IHRoZW0uCiAgICAKICAgIFRoZSBidWcgb2NjdXJzIGJlY2F1c2UgdGhlICJzYW5pdGl6 ZWQiIHJlY29yZHMgZG9lc24ndCBzZXQgb3AxIGFubWQgb3AyLAogICAgd2Ugc2hvdWxkIHNpbXBs eSBzZXQgdGhlIHJlY29yZCB3aXRoIHRoZSBzcGVjaWZpZWQgb3BlcmFuZHMuLgogICAgCiAgICAg ICAgICAgIFBSIHRyZWUtb3B0aW1pemF0aW9uLzEwOTI2NQogICAgICAgICAgICBQUiB0cmVlLW9w dGltaXphdGlvbi8xMDkyNzQKICAgICAgICAgICAgZ2NjLwogICAgICAgICAgICAqIHZhbHVlLXJl bGF0aW9uLmggKHZhbHVlX3JlbGF0aW9uOjpzZXRfcmVsYXRpb24pOiBBbHdheXMgY3JlYXRlIHRo ZQogICAgICAgICAgICByZWNvcmQgdGhhdCBpcyByZXF1ZXN0ZWQuCiAgICAKICAgICAgICAgICAg Z2NjL3Rlc3RzdWl0ZS8KICAgICAgICAgICAgKiBnY2MuZGcvcHIxMDkyNzQuYzogTmV3LgogICAg ICAgICAgICAqIGdmb3J0cmFuLmRnL3ByMTA5MjY1LmY5MDogTmV3LgoKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTA5Mjc0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjEw OTI3NC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZGJjMDIzMmY4 ZQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTA5Mjc0LmMKQEAg LTAsMCArMSwxNiBAQAorLyogUFIgdHJlZS1vcHRpbWl6YXRpb24vMTA5Mjc0ICovCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgIiB9ICovCisKK2Zsb2F0IGEs IGIsIGM7CitpbnQgZDsKK2Zsb2F0IGJhciAodm9pZCk7CisKK3ZvaWQKK2ZvbyAodm9pZCkKK3sK KyAgYSA9IDAgKiAtKDIuMGYgKiBjKTsKKyAgZCA9IGEgIT0gYSA/IDAgOiBiYXIgKCk7CisgIGIg PSBjOworfQorCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTA5MjY1 LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHIxMDkyNjUuZjkwCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZDcxMjRjNzc0MQotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvcHIxMDkyNjUuZjkwCkBAIC0wLDAgKzEsMzkg QEAKKyEgUFIgdHJlZS1vcHRpbWl6YXRpb24vMTA5MjY1CishIHsgZGctZG8gY29tcGlsZSB9Cish IHsgZGctb3B0aW9ucyAiLU8zIC13IiB9CisKK21vZHVsZSBwcjEwOTI2NQorICBpbnRlZ2VyLCBw YXJhbWV0ZXIgOjogcjggPSBzZWxlY3RlZF9yZWFsX2tpbmQgKDEyKQorY29udGFpbnMKKyAgc3Vi cm91dGluZSBmb28gKGIsIGMsIGQsIGUsIGYpCisgICAgaW1wbGljaXQgbm9uZQorICAgIGxvZ2lj YWwgOjogYgorICAgIHJlYWwgKGtpbmQgPSByOCkgOjogYywgZCwgZSwgZiwgaQorICAgIGlmIChi KSB0aGVuCisgICAgICBjID0gYmFyIChjICogZCwgZSkKKyAgICAgIGkgPSBiYXIgKGYsIGMpCisg ICAgICBjYWxsIGJheiAoaSkKKyAgICAgIGNhbGwgYmF6ICgtaSkKKyAgICBlbmQgaWYKKyAgZW5k IHN1YnJvdXRpbmUgZm9vCisgIGZ1bmN0aW9uIGJhciAoYSwgYikKKyAgICBpbXBsaWNpdCBub25l CisgICAgcmVhbCAoa2luZCA9IHI4KSA6OiBiYXIKKyAgICByZWFsIChraW5kID0gcjgpIDo6IGEs IGIKKyAgICBiYXIgPSBhICsgYgorICBlbmQgZnVuY3Rpb24gYmFyCisgIHN1YnJvdXRpbmUgYmF6 IChiKQorICAgIGltcGxpY2l0IG5vbmUKKyAgICByZWFsIChraW5kID0gcjgpIDo6IGIsIGQsIGUs IGYsIGcsIGgsIGkKKyAgICBkID0gYgorICAgIGkgPSAwCisgICAgZSA9IGQKKyAgICBmID0gZAor ICAgIGcgPSBkCisgIDEwIGNvbnRpbnVlCisgICAgaWYgKChlLmVxLmQpIC5hbmQuIChmLmVxLmQp IC5hbmQuIChnLmVxLmQpIC5hbmQuIChoLmVxLmQpKSB0aGVuCisgICAgICBoID0gaQorICAgICAg Z290byAxMAorICAgIGVuZCBpZgorICBlbmQgc3Vicm91dGluZSBiYXoKK2VuZCBtb2R1bGUgcHIx MDkyNjUKZGlmZiAtLWdpdCBhL2djYy92YWx1ZS1yZWxhdGlvbi5oIGIvZ2NjL3ZhbHVlLXJlbGF0 aW9uLmgKaW5kZXggMzZhNzU4NjJjYzcuLjMxNzdlY2IxYWQwIDEwMDY0NAotLS0gYS9nY2MvdmFs dWUtcmVsYXRpb24uaAorKysgYi9nY2MvdmFsdWUtcmVsYXRpb24uaApAQCAtNDQ1LDEzICs0NDUs NiBAQCB2YWx1ZV9yZWxhdGlvbjo6c2V0X3JlbGF0aW9uIChyZWxhdGlvbl9raW5kIHIsIHRyZWUg bjEsIHRyZWUgbjIpCiB7CiAgIGdjY19jaGVja2luZ19hc3NlcnQgKFRSRUVfQ09ERSAobjEpID09 IFNTQV9OQU1FCiAJCSAgICAgICAmJiBUUkVFX0NPREUgKG4yKSA9PSBTU0FfTkFNRSk7Ci0gIGlm IChuMSA9PSBuMiAmJiByICE9IFZSRUxfRVEpCi0gICAgewotICAgICAgcmVsYXRlZCA9IFZSRUxf VkFSWUlORzsKLSAgICAgIG5hbWUxID0gTlVMTF9UUkVFOwotICAgICAgbmFtZTIgPSBOVUxMX1RS RUU7Ci0gICAgICByZXR1cm47Ci0gICAgfQogICByZWxhdGVkID0gcjsKICAgbmFtZTEgPSBuMTsK ICAgbmFtZTIgPSBuMjsK --------------cXj3imiFGs3uu7SHGdCoCAPL--