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.133.124]) by sourceware.org (Postfix) with ESMTPS id 4EE243846456 for ; Thu, 30 Jun 2022 01:42:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4EE243846456 Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-126-RdmPVq6XOCWnIi8Td3aoYQ-1; Wed, 29 Jun 2022 21:42:56 -0400 X-MC-Unique: RdmPVq6XOCWnIi8Td3aoYQ-1 Received: by mail-qk1-f199.google.com with SMTP id bi36-20020a05620a31a400b006a79f0706e5so17926207qkb.2 for ; Wed, 29 Jun 2022 18:42:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:cc:from:subject; bh=U4oLbhNEPE35G/1tN/74aiJ3XjZclyppmagxDqmt6+0=; b=VTdLAQioHT4vrBV9MhJ260sBZcUxEkTs7yAY98gdKpGNHZmpI+wjOJmM4dwf7rYtbf x5pGYRWDdWT7zVz8c0BtEH0y/KhTlAjil/CgBhUVn2V6E04tHRXH1QtmEAiQbjckBqhJ cZZLVAykKYCLYBFL5LjCcVAMwjhEr116rZwZWS3/279U/F/2bgglS4rVvzenBKYWgKab P9HNr3vCxpxMOwvovDqzVYFIgFV3B0MYu4Qipo7h4Zjc2dWMkUXr5QF1xCkAfYvdhSib C6ohVL/86JPwt8r/6oz+8yxRxp6e1gV10aP6o8wtklhILk/jxbKiU3pjHDDmQonh5bFC ljpA== X-Gm-Message-State: AJIora+C2OaXxSI3LY3JLhbiYnnjFFBlfVk9TEdmx6dcz/+XKFU9ksey 7V+cYHiLhLyLsIqCgNfZ408WEb5TmnonTr72fxxNmdgkLRJ1CGKlQQr4ya1/lsKZ1eRe1r7162v +yxk2uus22jWt0Ai6T8so/GWW6E2CKTkpXzlFR26xb7m6Xs7ajmWfrG/qQIyirDFlOHsAQQ== X-Received: by 2002:a05:620a:27d0:b0:6af:2e15:5c0e with SMTP id i16-20020a05620a27d000b006af2e155c0emr4351736qkp.209.1656553375668; Wed, 29 Jun 2022 18:42:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vrNHSf0ld01qesi5OpH7LhsqEDF2kH+yDTbkcQWBKZjiSL6a99a+pwXH75keO6qpDWkdnzYw== X-Received: by 2002:a05:620a:27d0:b0:6af:2e15:5c0e with SMTP id i16-20020a05620a27d000b006af2e155c0emr4351729qkp.209.1656553375352; Wed, 29 Jun 2022 18:42:55 -0700 (PDT) Received: from [10.0.0.252] (cpea456cc3d0739-cma456cc3d0737.cpe.net.cable.rogers.com. [99.244.104.246]) by smtp.gmail.com with ESMTPSA id bl34-20020a05620a1aa200b006af34a1a897sm7639479qkb.65.2022.06.29.18.42.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 29 Jun 2022 18:42:54 -0700 (PDT) Message-ID: Date: Wed, 29 Jun 2022 21:40:44 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 To: gcc-patches From: Andrew MacLeod Subject: [COMMITTED] PR tree-optimization/106114 - Don't use gori dependencies to optimize. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------LtIrjmI4hcwkDPpCD77rZubm" Content-Language: en-CA X-Spam-Status: No, score=-12.6 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, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE 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-List-Received-Date: Thu, 30 Jun 2022 01:43:00 -0000 This is a multi-part message in MIME format. --------------LtIrjmI4hcwkDPpCD77rZubm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit The routine which tried to fold and's and or's using relations was using the dependency cache as a shortcut to determine if there were 2 ssa names on the feeding expressions, and assuming that was correct. ie   _16 = a.0_1 < -117;   _17 = a.0_1 >= -83;   _18 = _16 | _17; the dependency cache indicates that a.0_1 is "ssa1" dependency for _16 and also for _17.  we dont have to scan the statement, so temporal out of date info is very quick. Its also not meant to reflect that actual statement.. ie, it can get out of date.  Not is a way that makes anything incorrect, but in a way that may possibly result in a  either a missed opportunity or slightly more work when statements are being rewritten on the fly..  ie  DOM rewrites that to:   _16 = a.1_15 < -117;   _17 = a.1_15 >= -83;   _18 = _16 | _17; When fold_using_range is later invoked, a.1_15 is added a dependency to _16 and _17,  not attempting to understand that its a replacement, we simply now think that both a.0_1 and a.1_15 are dependencies.  so if either one becomes out of date, then ranger will recalculate _16 and/or _17 fold_using_range::relation_fold_and_or was using thet dependency cache as if it represent the operands of the statement accurately... so after the DOM rewrite, it thought that there were 2 operands on the _16 and _17 expression, the 2 dependencies in the cache, misconstruing it as   _16 = a.0_1_ < a.1_15;   _17 = a.0_1 >= a.1_15;   _18 = _16 | _17; Thus it thought is could fold it away. The dependency cache shortcut should NOT be used for optimizations.   THis patch correct the problem, and simply looks at the 2 operands of the feeding instructions. bootstrapped on build-x86_64-pc-linux-gnu with no regressions. Pushed. This is less likely to occur in GCC12 since there is less IL change on the fly, but it should be safe to make this change just in case.  OK for GCC12? Andrew PS. and yes, it fixes the other 2 testcases as well. --------------LtIrjmI4hcwkDPpCD77rZubm Content-Type: text/x-patch; charset=UTF-8; name="0001-Don-t-use-gori-depedencies-to-optimize.patch" Content-Disposition: attachment; filename="0001-Don-t-use-gori-depedencies-to-optimize.patch" Content-Transfer-Encoding: base64 RnJvbSBjMTE0NjFiZTRlNWYzMTA3ZDMyMTg3ZjJkZjllNWQ0ZWMzZjdiMGQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogV2VkLCAyOSBKdW4gMjAyMiAxMzozNDowNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIERv bid0IHVzZSBnb3JpIGRlcGVkZW5jaWVzIHRvIG9wdGltaXplLgoKICBUaGUgcm91dGluZSBmb2xk X3VzaW5nX3JhbmdlOjpyZWxhdGlvbl9mb2xkX2FuZF9vciBuZWVkcyB0byB2ZXJpeWYgdGhhdCBi b3RoCm9wZXJhbmRzIG9mIDIgc3RtdHMgYXJlIHRoZSBzYW1lLCBhbmQgdXNlcyBHT1JJcyBkZXBl bmRlbmN5IGNhY2hlIGZvciB0aGlzLgpUaGlzIGNhY2hlIGNhbm5vdCBiZSBjb3VudGVkIG9uIHRv IHJlZmxlY3QgdGhlIGN1cnJlbnQgY29udGVudHMgb2YgYQpzdG10LCBleHBlY2lhbGx5IGluIHRo ZSBwcmVzZW5jZSBvZiBhbiBJTCBjaGFuZ2luZyBwYXNzLiAgSW5zdGVhZCwgbG9vayBhdCB0aGUK c3RhdGVtZW50IG9wZXJhbmRzLgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzEwNjExNAoJZ2NjLwoJ KiBnaW1wbGUtcmFuZ2UtZm9sZC5jYyAoZm9sZF91c2luZ19yYW5nZTo6cmVsYXRpb25fZm9sZF9h bmRfb3IpOiBDaGVjawoJc3RhdGVtZW50IG9wZXJhbmRzIGluc3RlYWQgb2YgR09SSSBjYWNoZS4K CXRlc3RzdWl0ZS8KCSogZ2NjLmRnL3ByMTA2MTE0LmM6IE5ldy4KLS0tCiBnY2MvZ2ltcGxlLXJh bmdlLWZvbGQuY2MgICAgICAgIHwgMzAgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBn Y2MvdGVzdHN1aXRlL2djYy5kZy9wcjEwNjExNC5jIHwgMTQgKysrKysrKysrKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMDYxMTQuYwoKZGlmZiAtLWdpdCBhL2dj Yy9naW1wbGUtcmFuZ2UtZm9sZC5jYyBiL2djYy9naW1wbGUtcmFuZ2UtZm9sZC5jYwppbmRleCAy YThjNjZlMGMwNS4uMGY4MTViNTBiOWEgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtcmFuZ2UtZm9s ZC5jYworKysgYi9nY2MvZ2ltcGxlLXJhbmdlLWZvbGQuY2MKQEAgLTEzOTcsMTQgKzEzOTcsMjUg QEAgZm9sZF91c2luZ19yYW5nZTo6cmVsYXRpb25fZm9sZF9hbmRfb3IgKGlyYW5nZSYgbGhzX3Jh bmdlLCBnaW1wbGUgKnMsCiAgIC8vIElkZWFsbHkgd2Ugc2VhcmNoIGRlcGVuZGVuY2llcyBmb3Ig Y29tbW9uIG5hbWVzLCBhbmQgc2VlIHdoYXQgcG9wcyBvdXQuCiAgIC8vIHVudGlsIHRoZW4sIHNp bXBseSB0cnkgdG8gcmVzb2x2ZSBkaXJlY3QgZGVwZW5kZW5jaWVzLgogCi0gIC8vIEJvdGggbmFt ZXMgd2lsbCBuZWVkIHRvIGhhdmUgMiBkaXJlY3QgZGVwZW5kZW5jaWVzLgotICB0cmVlIHNzYTFf ZGVwMiA9IHNyYy5nb3JpICgpLT5kZXBlbmQyIChzc2ExKTsKLSAgdHJlZSBzc2EyX2RlcDIgPSBz cmMuZ29yaSAoKS0+ZGVwZW5kMiAoc3NhMik7Ci0gIGlmICghc3NhMV9kZXAyIHx8ICFzc2EyX2Rl cDIpCisgIGdpbXBsZSAqc3NhMV9zdG10ID0gU1NBX05BTUVfREVGX1NUTVQgKHNzYTEpOworICBn aW1wbGUgKnNzYTJfc3RtdCA9IFNTQV9OQU1FX0RFRl9TVE1UIChzc2EyKTsKKworICByYW5nZV9v cF9oYW5kbGVyIGhhbmRsZXIxIChTU0FfTkFNRV9ERUZfU1RNVCAoc3NhMSkpOworICByYW5nZV9v cF9oYW5kbGVyIGhhbmRsZXIyIChTU0FfTkFNRV9ERUZfU1RNVCAoc3NhMikpOworCisgIC8vIElm IGVpdGhlciBoYW5kbGVyIGlzIG5vdCBwcmVzZW50LCBubyByZWxhdGlvbiBjYW4gYmUgZm91bmQu CisgIGlmICghaGFuZGxlcjEgfHwgIWhhbmRsZXIyKQorICAgIHJldHVybjsKKworICAvLyBCb3Ro IHN0bXRzIHdpbGwgbmVlZCB0byBoYXZlIDIgc3NhIG5hbWVzIGluIHRoZSBzdG10LgorICB0cmVl IHNzYTFfZGVwMSA9IGdpbXBsZV9yYW5nZV9zc2FfcCAoZ2ltcGxlX3JhbmdlX29wZXJhbmQxIChz c2ExX3N0bXQpKTsKKyAgdHJlZSBzc2ExX2RlcDIgPSBnaW1wbGVfcmFuZ2Vfc3NhX3AgKGdpbXBs ZV9yYW5nZV9vcGVyYW5kMiAoc3NhMV9zdG10KSk7CisgIHRyZWUgc3NhMl9kZXAxID0gZ2ltcGxl X3JhbmdlX3NzYV9wIChnaW1wbGVfcmFuZ2Vfb3BlcmFuZDEgKHNzYTJfc3RtdCkpOworICB0cmVl IHNzYTJfZGVwMiA9IGdpbXBsZV9yYW5nZV9zc2FfcCAoZ2ltcGxlX3JhbmdlX29wZXJhbmQyIChz c2EyX3N0bXQpKTsKKworICBpZiAoIXNzYTFfZGVwMSB8fCAhc3NhMV9kZXAyIHx8ICFzc2EyX2Rl cDEgfHwgIXNzYTJfZGVwMikKICAgICByZXR1cm47CiAKLSAgdHJlZSBzc2ExX2RlcDEgPSBzcmMu Z29yaSAoKS0+ZGVwZW5kMSAoc3NhMSk7Ci0gIHRyZWUgc3NhMl9kZXAxID0gc3JjLmdvcmkgKCkt PmRlcGVuZDEgKHNzYTIpOwogICAvLyBNYWtlIHN1cmUgdGhleSBhcmUgdGhlIHNhbWUgZGVwZW5k ZW5jaWVzLCBhbmQgZGV0ZWN0IHRoZSBvcmRlciBvZiB0aGUKICAgLy8gcmVsYXRpb25zaGlwLgog ICBib29sIHJldmVyc2Vfb3AyID0gdHJ1ZTsKQEAgLTE0MTMsMTMgKzE0MjQsNiBAQCBmb2xkX3Vz aW5nX3JhbmdlOjpyZWxhdGlvbl9mb2xkX2FuZF9vciAoaXJhbmdlJiBsaHNfcmFuZ2UsIGdpbXBs ZSAqcywKICAgZWxzZSBpZiAoc3NhMV9kZXAxICE9IHNzYTJfZGVwMiB8fCBzc2ExX2RlcDIgIT0g c3NhMl9kZXAxKQogICAgIHJldHVybjsKIAotICByYW5nZV9vcF9oYW5kbGVyIGhhbmRsZXIxIChT U0FfTkFNRV9ERUZfU1RNVCAoc3NhMSkpOwotICByYW5nZV9vcF9oYW5kbGVyIGhhbmRsZXIyIChT U0FfTkFNRV9ERUZfU1RNVCAoc3NhMikpOwotCi0gIC8vIElmIGVpdGhlciBoYW5kbGVyIGlzIG5v dCBwcmVzZW50LCBubyByZWxhdGlvbiBpcyBmb3VuZC4KLSAgaWYgKCFoYW5kbGVyMSB8fCAhaGFu ZGxlcjIpCi0gICAgcmV0dXJuOwotCiAgIGludF9yYW5nZTwyPiBib29sX29uZSAoYm9vbGVhbl90 cnVlX25vZGUsIGJvb2xlYW5fdHJ1ZV9ub2RlKTsKIAogICByZWxhdGlvbl9raW5kIHJlbGF0aW9u MSA9IGhhbmRsZXIxLm9wMV9vcDJfcmVsYXRpb24gKGJvb2xfb25lKTsKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTA2MTE0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjEw NjExNC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NGM4YjhkMzkw YQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTA2MTE0LmMKQEAg LTAsMCArMSwxNCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1mZHVtcC10cmVlLWRvbTIiIH0gKi8KKworaW50IHByaW50Zihjb25zdCBjaGFyICosIC4u Lik7CitjaGFyIGEgPSAxMzksIGI7CitpbnQgbWFpbigpIHsKKyAgY2hhciBjID0gMTczOworICBi ID0gYTsKKyAgd2hpbGUgKGMgPD0gYSB8fCBhIDwgLTExNykKKyAgICBjID0gcHJpbnRmKCIwXG4i KTsKKyAgcmV0dXJuIDA7Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAgImlmIiAyICJkb20yIiB9IH0gICovCi0tIAoyLjE3LjIKCg== --------------LtIrjmI4hcwkDPpCD77rZubm--