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 21E803858C55 for ; Wed, 21 Sep 2022 07:52:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 21E803858C55 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=1663746737; 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=1yMdqM8q0wKaOn2qhB0QQ+K6SAygOlYzfcrSgdtojcs=; b=DYuNchG9F7Tuez8CID/6J88vl+26w/cawakTfaZD8W3iAireR/98CAMRlJ40Baz8ZHDvFC Wdv3KRwl+/YKA4OzSBPWwt4W9Qq68qVEeqziv/Or2TIc8ktxjWXLOGMmUSerNfXXoHd5Pn XTcsyThgkM57L5EpyvaJ6BP4sLs3Cf4= Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-591-dDlGGFotOniOEJo8eZFMVw-1; Wed, 21 Sep 2022 03:52:16 -0400 X-MC-Unique: dDlGGFotOniOEJo8eZFMVw-1 Received: by mail-oo1-f72.google.com with SMTP id l5-20020a4a8545000000b00475ffda925aso2341785ooh.21 for ; Wed, 21 Sep 2022 00:52:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=1yMdqM8q0wKaOn2qhB0QQ+K6SAygOlYzfcrSgdtojcs=; b=CWQU0vodzTflNGS22K7aYfJvnhClhbUM3eD1DMoWsosM43ziYXMY1PHGyeQtAPM92a ibT/iL9MahLSa+Ux4CmKHnsxhvdqq3CcJwbQ2Gd4e3DikOSaj2F1SOXv9Kt3PfCFtXiA B4WXOuTtIkEv3Kr18iZJVOFU7k0U3xRUJFeabf+tSrw6gwKhQXPO5rKTAb5WO2jnbQZd yTI5I5xjd8W5hLy4+3gdzlCElhiF+nL+AvB5pYLfActGBKMuxlPZJeRTg3h/ywlaOka0 hmP41t6a200nlZz/+tTZYUhzMSiN1t5epy7SrXL31P3FkO5q9yfMXR1qdg8WmjXfEHa3 eHgA== X-Gm-Message-State: ACrzQf1sfdEGSf1zku8nfhsZRN15xl8TxJ75lXvIBBHUJv7EajHFLp3f J1mIuWbAbXKJhv0av7sDfg7Z73XeJtS7apaPKTJjeziCgQgQWY8qUCBqzHXk7Sbfi33ik0Wqc4x xzWeCLqwmvGUi//fVOz84xV2hgUK91IDI4Q== X-Received: by 2002:a05:6808:1a98:b0:34f:8b40:6263 with SMTP id bm24-20020a0568081a9800b0034f8b406263mr3399463oib.265.1663746735818; Wed, 21 Sep 2022 00:52:15 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6lb3kFm/LAuXZ7XPL0EQzowNSvDKOun57UNEyNygcnVm30SAjGuqa1nbWQ3/h+cf7UGMwMMqdAQt64U9fBIz0= X-Received: by 2002:a05:6808:1a98:b0:34f:8b40:6263 with SMTP id bm24-20020a0568081a9800b0034f8b406263mr3399459oib.265.1663746735558; Wed, 21 Sep 2022 00:52:15 -0700 (PDT) MIME-Version: 1.0 References: <20220920182223.2019637-1-aldyh@redhat.com> In-Reply-To: From: Aldy Hernandez Date: Wed, 21 Sep 2022 09:52:04 +0200 Message-ID: Subject: Re: [COMMITTED] frange::maybe_isnan() should return FALSE for undefined ranges. To: Richard Biener Cc: GCC patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000002b8b0605e92b399d" 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_LOW,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: --0000000000002b8b0605e92b399d Content-Type: text/plain; charset="UTF-8" The reason the flags were uninitialized was because they were unused, similarly for m_type. But you're right, it is icky and prone to bugs. I just thought it was cheap to set_undefined by just flipping m_kind=VR_UNDEFINED, but it smells like premature optimization. How about this? Aldy On Wed, Sep 21, 2022 at 9:39 AM Richard Biener wrote: > > On Tue, Sep 20, 2022 at 8:23 PM Aldy Hernandez via Gcc-patches > wrote: > > > > Undefined ranges have undefined NAN bits. We can't depend on them, > > as they may contain garbage. > > Ick ;) Can you add a comment at least? > > > This patch returns false from > > maybe_isnan() for undefined ranges (the empty set). > > > > gcc/ChangeLog: > > > > * value-range.h (frange::maybe_isnan): Return false for > > undefined ranges. > > --- > > gcc/value-range.h | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/gcc/value-range.h b/gcc/value-range.h > > index 7d5584a9294..325ed08f290 100644 > > --- a/gcc/value-range.h > > +++ b/gcc/value-range.h > > @@ -1210,6 +1210,8 @@ frange::known_isinf () const > > inline bool > > frange::maybe_isnan () const > > { > > + if (undefined_p ()) > > + return false; > > return m_pos_nan || m_neg_nan; > > } > > > > -- > > 2.37.1 > > > --0000000000002b8b0605e92b399d Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Clear-unused-flags-in-frange-for-undefined-ranges.patch" Content-Disposition: attachment; filename="0002-Clear-unused-flags-in-frange-for-undefined-ranges.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l8bbu7pf0 RnJvbSBmOTZlYjhmNDM4NmYyY2VjNjdkYmYyMGFiMzY1MGFhNzU2ZmUyMThhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGR5IEhlcm5hbmRleiA8YWxkeWhAcmVkaGF0LmNvbT4KRGF0 ZTogV2VkLCAyMSBTZXAgMjAyMiAwOTo0OToxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIENsZWFy IHVudXNlZCBmbGFncyBpbiBmcmFuZ2UgZm9yIHVuZGVmaW5lZCByYW5nZXMuCgpnY2MvQ2hhbmdl TG9nOgoKCSogdmFsdWUtcmFuZ2UuY2MgKGZyYW5nZTo6Y29tYmluZV96ZXJvcyk6IENhbGwgc2V0 X3VuZGVmaW5lZC4KCShmcmFuZ2U6OmludGVyc2VjdF9uYW5zKTogU2FtZS4KCShmcmFuZ2U6Omlu dGVyc2VjdCk6IFNhbWUuCgkoZnJhbmdlOjp2ZXJpZnlfcmFuZ2UpOiBVbmRlZmluZWQgcmFuZ2Vz IGRvIG5vdCBoYXZlIGEgdHlwZS4KCSogdmFsdWUtcmFuZ2UuaCAoZnJhbmdlOjpzZXRfdW5kZWZp bmVkKTogQ2xlYXIgTkFOIGZsYWdzIGFuZCB0eXBlLgotLS0KIGdjYy92YWx1ZS1yYW5nZS5jYyB8 IDggKysrKy0tLS0KIGdjYy92YWx1ZS1yYW5nZS5oICB8IDQgKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL3ZhbHVl LXJhbmdlLmNjIGIvZ2NjL3ZhbHVlLXJhbmdlLmNjCmluZGV4IGRjNDJiNmQzMTIwLi41MDVlYjky MTFhNyAxMDA2NDQKLS0tIGEvZ2NjL3ZhbHVlLXJhbmdlLmNjCisrKyBiL2djYy92YWx1ZS1yYW5n ZS5jYwpAQCAtNDIyLDcgKzQyMiw3IEBAIGZyYW5nZTo6Y29tYmluZV96ZXJvcyAoY29uc3QgZnJh bmdlICZyLCBib29sIHVuaW9uX3ApCiAgICAgICBpZiAobWF5YmVfaXNuYW4gKCkpCiAJbV9raW5k ID0gVlJfTkFOOwogICAgICAgZWxzZQotCW1fa2luZCA9IFZSX1VOREVGSU5FRDsKKwlzZXRfdW5k ZWZpbmVkICgpOwogICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgfQogICByZXR1cm4gY2hhbmdl ZDsKQEAgLTUwNiw3ICs1MDYsNyBAQCBmcmFuZ2U6OmludGVyc2VjdF9uYW5zIChjb25zdCBmcmFu Z2UgJnIpCiAgIGlmIChtYXliZV9pc25hbiAoKSkKICAgICBtX2tpbmQgPSBWUl9OQU47CiAgIGVs c2UKLSAgICBtX2tpbmQgPSBWUl9VTkRFRklORUQ7CisgICAgc2V0X3VuZGVmaW5lZCAoKTsKICAg aWYgKGZsYWdfY2hlY2tpbmcpCiAgICAgdmVyaWZ5X3JhbmdlICgpOwogICByZXR1cm4gdHJ1ZTsK QEAgLTU1OCw3ICs1NTgsNyBAQCBmcmFuZ2U6OmludGVyc2VjdCAoY29uc3QgdnJhbmdlICZ2KQog ICAgICAgaWYgKG1heWJlX2lzbmFuICgpKQogCW1fa2luZCA9IFZSX05BTjsKICAgICAgIGVsc2UK LQltX2tpbmQgPSBWUl9VTkRFRklORUQ7CisJc2V0X3VuZGVmaW5lZCAoKTsKICAgICAgIGlmIChm bGFnX2NoZWNraW5nKQogCXZlcmlmeV9yYW5nZSAoKTsKICAgICAgIHJldHVybiB0cnVlOwpAQCAt Njk2LDcgKzY5Niw3IEBAIGZyYW5nZTo6dmVyaWZ5X3JhbmdlICgpCiAgIHN3aXRjaCAobV9raW5k KQogICAgIHsKICAgICBjYXNlIFZSX1VOREVGSU5FRDoKLSAgICAgIC8vIG1fdHlwZSBpcyBpZ25v cmVkLgorICAgICAgZ2NjX2NoZWNraW5nX2Fzc2VydCAoIW1fdHlwZSk7CiAgICAgICByZXR1cm47 CiAgICAgY2FzZSBWUl9WQVJZSU5HOgogICAgICAgZ2NjX2NoZWNraW5nX2Fzc2VydCAobV90eXBl KTsKZGlmZiAtLWdpdCBhL2djYy92YWx1ZS1yYW5nZS5oIGIvZ2NjL3ZhbHVlLXJhbmdlLmgKaW5k ZXggMzI1ZWQwOGYyOTAuLjM2NjhiMzMxMTg3IDEwMDY0NAotLS0gYS9nY2MvdmFsdWUtcmFuZ2Uu aAorKysgYi9nY2MvdmFsdWUtcmFuZ2UuaApAQCAtMTA4Myw2ICsxMDgzLDEwIEBAIGlubGluZSB2 b2lkCiBmcmFuZ2U6OnNldF91bmRlZmluZWQgKCkKIHsKICAgbV9raW5kID0gVlJfVU5ERUZJTkVE OworICBtX3R5cGUgPSBOVUxMOworICBtX3Bvc19uYW4gPSBmYWxzZTsKKyAgbV9uZWdfbmFuID0g ZmFsc2U7CisgIC8vIG1fbWluIGFuZCBtX21pbiBhcmUgdW5pdGlhbGl6ZWQgYXMgdGhleSBhcmUg UkVBTF9WQUxVRV9UWVBFID8/LgogICBpZiAoZmxhZ19jaGVja2luZykKICAgICB2ZXJpZnlfcmFu Z2UgKCk7CiB9Ci0tIAoyLjM3LjEKCg== --0000000000002b8b0605e92b399d--