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 588533858D1E for ; Mon, 30 Jan 2023 19:46:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 588533858D1E 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=1675107999; 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=sfM2vO61aiq8ySchdK/FOWb6gO71S6hBBfvbWCSscSs=; b=h9XAh5VZUoDfsd2slhpwI2Rc5eNfedyIXEkckXLq9eQySu5Ua6rfsfQTb4Ne8lmOcS3kHc 6MCwGe5eVadq54RAw2CbvCmvLX64Aq9eeHCHUr2vTjwuLsBOErOd0BIos8Z7foZbp7e4AN bETGGoQATGrwYkj8vwrXegmRHzfHL9I= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-563-YEjyV3mJMUK9VzQ93KgTIA-1; Mon, 30 Jan 2023 14:46:38 -0500 X-MC-Unique: YEjyV3mJMUK9VzQ93KgTIA-1 Received: by mail-qt1-f197.google.com with SMTP id o16-20020ac841d0000000b003b689580725so5517530qtm.22 for ; Mon, 30 Jan 2023 11:46:38 -0800 (PST) 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=WTt8B7Kf7hmypwgc1HDVcuvKspnVx3dVQT2+3MCBzGQ=; b=dOSuQkFX7t2A0Es1t6q04M0gEMqnQwsMPzNhUssRYy0+3flIjh/n8en2Ttcmc9xBGm Jl7+y60URTbM4JYJskQu9aZ3XB11gjsCuX1YVm01OcEIrAZpaoxU/5gAPr3VayBhCT+B JwZWLLqHscWzOVSMO3PaMwM5zIUyXwMWPwZ8J+/TYpNGuUyFd+/JjO83TLHweXo0kbIo hCB8gL3VEP7qLzuG4Bhm/yD47UUteCOv+zOU2/VSD41T6VCrnIr/u5kaEpWxevNpURm0 tyU1YHWAPtvT5yiU5/Ita+9sHHuE0wuLJK0CfMy+OSRafpY/ARPN8Ubx1IzOXKh9sBcX L78g== X-Gm-Message-State: AFqh2kpHeJE1dUmbzl4bGeSZ/mNGGCx7JzNmp7cJ1I+nClh4pzH4AuCI wnzGASwheuShYYxXyiX1UxvEWuTvRbex9MDLct1s9wYN1485LtlebHgoaeINSRaLwCKr7WrCprG O1rgAjONtBBLHdmgAREcKZZhLi4d6EQUlLKqK0UN/pX6O5GIrzWCXaG/ENTu+7dCXj6W8nA== X-Received: by 2002:a05:622a:4805:b0:3b2:365c:9a9e with SMTP id fb5-20020a05622a480500b003b2365c9a9emr72725195qtb.61.1675107997346; Mon, 30 Jan 2023 11:46:37 -0800 (PST) X-Google-Smtp-Source: AMrXdXs8JS3mu5awBWw4wOZaODljHKZumesk4a+bEaYNovuCoGjIaMiIIPAhO2vKQSh1oP1Lu3Gtmw== X-Received: by 2002:a05:622a:4805:b0:3b2:365c:9a9e with SMTP id fb5-20020a05622a480500b003b2365c9a9emr72725166qtb.61.1675107996970; Mon, 30 Jan 2023 11:46:36 -0800 (PST) Received: from ?IPV6:2607:fea8:a263:f600::fa90? ([2607:fea8:a263:f600::fa90]) by smtp.gmail.com with ESMTPSA id a12-20020a05620a438c00b00706b09b16fasm2544180qkp.11.2023.01.30.11.46.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Jan 2023 11:46:36 -0800 (PST) Message-ID: <64ec68a2-7a9f-4c20-0abe-7d36d7707ee4@redhat.com> Date: Mon, 30 Jan 2023 14:46:33 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [PATCH 3/3] tree-optimization/108385 - Add op2_range to pointer_plus. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------KbpERdmqpN9CbmsLqiW030PT" Content-Language: en-US X-Spam-Status: No, score=-12.0 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 List-Id: This is a multi-part message in MIME format. --------------KbpERdmqpN9CbmsLqiW030PT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Implement op2_range for pointer_plus to determine the offset (operand 2) is zero or non-zero based on equality/inequality between the LHS and op1. Fairly trivial fix for the PR, dependent on the first patch in the set as it uses an accurate relation_trio in GORI to determine if LHS == OP1. There was one tweak to GORI in that we use to stop calculating when the LHS was varying.  THis PR also exposed a case where the LHS is varying, but a relation between the operands can still cause us to find a useful result...  ie VARYING = VARYING + OFFSET when LHS and OP1 are equal can produce a non-zero OFFSET calculation. Bootstraps on x86_64-pc-linux-gnu with no regressions. OK for trunk? Andrew --------------KbpERdmqpN9CbmsLqiW030PT Content-Type: text/x-patch; charset=UTF-8; name="0003-Add-op2_range-to-pointer_plus.patch" Content-Disposition: attachment; filename="0003-Add-op2_range-to-pointer_plus.patch" Content-Transfer-Encoding: base64 RnJvbSAwNzMwZDlhNmI4NTZmNjg4N2JmZmZjNGNlNDVkNDE2NDU2M2E0NzZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogVHVlLCAxNyBKYW4gMjAyMyAxMTozOTo0NyAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMy8z XSBBZGQgb3AyX3JhbmdlIHRvIHBvaW50ZXJfcGx1cy4KCkltcGxlbWVudCBvcDJfcmFuZ2UgZm9y IHBvaW50ZXJfcGx1cyB0byBkZXRlcm1pbmUgdGhlIG9mZnNldCAob3BlcmFuZCAyKSBpcwp6ZXJv IG9yIG5vbi16ZXJvIGJhc2VkIG9uIGVxdWFsaXR5L2luZXF1YWxpdHkgYmV0d2VlbiB0aGUgTEhT IGFuZCBvcDEuCkFsc28gYWxsb3cgR09SSSBjb21wdXRhdGlvbnMgdG8gY29udGludWUgaWYgdGhl IExIUyBpcyBWQVJZSU5HIGFuZCB0aGVyZQppcyBhbHNvIGEgcmVsYXRpb24uCgoJUFIgdHJlZS1v cHRpbWl6YXRpb24vMTA4Mzg1CglnY2MvCgkqIGdpbXBsZS1yYW5nZS1nb3JpLmNjIChnb3JpX2Nv bXB1dGU6OmNvbXB1dGVfb3BlcmFuZF9yYW5nZSk6CglBbGxvdyBWQVJZSU5HIGNvbXB1dGF0aW9u cyB0byBjb250aW51ZSBpZiB0aGVyZSBpcyBhIHJlbGF0aW9uLgoJKiByYW5nZS1vcC5jYyAocG9p bnRlcl9wbHVzX29wZXJhdG9yOjpvcDJfcmFuZ2UpOiBOZXcuCgoJZ2NjL3Rlc3RzdWl0ZS8KCSog Z2NjLmRnL3ByMTA4Mzg1LmM6IE5ldy4KLS0tCiBnY2MvZ2ltcGxlLXJhbmdlLWdvcmkuY2MgICAg ICAgIHwgMTMgKysrKysrKy0tLS0KIGdjYy9yYW5nZS1vcC5jYyAgICAgICAgICAgICAgICAgfCAy MyArKysrKysrKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjEwODM4NS5jIHwg MzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDcx IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvcHIxMDgzODUuYwoKZGlmZiAtLWdpdCBhL2djYy9naW1wbGUtcmFuZ2Ut Z29yaS5jYyBiL2djYy9naW1wbGUtcmFuZ2UtZ29yaS5jYwppbmRleCAzZGM0NTc2ZmYxMy4uYmVi MWMwMDY0YjkgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtcmFuZ2UtZ29yaS5jYworKysgYi9nY2Mv Z2ltcGxlLXJhbmdlLWdvcmkuY2MKQEAgLTYwNywxMCArNjA3LDYgQEAgZ29yaV9jb21wdXRlOjpj b21wdXRlX29wZXJhbmRfcmFuZ2UgKHZyYW5nZSAmciwgZ2ltcGxlICpzdG10LAogewogICB2YWx1 ZV9yZWxhdGlvbiB2cmVsOwogICB2YWx1ZV9yZWxhdGlvbiAqdnJlbF9wdHIgPSByZWw7Ci0gIC8v IElmIHRoZSBsaHMgZG9lc24ndCB0ZWxsIHVzIGFueXRoaW5nLCBuZWl0aGVyIHdpbGwgdW53aW5k aW5nIGZ1cnRoZXIuCi0gIGlmIChsaHMudmFyeWluZ19wICgpKQotICAgIHJldHVybiBmYWxzZTsK LQogICAvLyBFbXB0eSByYW5nZXMgYXJlIHZpcmFsIGFzIHRoZXkgYXJlIG9uIGFuIHVuZXhlY3V0 YWJsZSBwYXRoLgogICBpZiAobGhzLnVuZGVmaW5lZF9wICgpKQogICAgIHsKQEAgLTY1NywxMCAr NjUzLDE5IEBAIGdvcmlfY29tcHV0ZTo6Y29tcHV0ZV9vcGVyYW5kX3JhbmdlICh2cmFuZ2UgJnIs IGdpbXBsZSAqc3RtdCwKICAgaWYgKCFvcDFfaW5fY2hhaW4gJiYgIW9wMl9pbl9jaGFpbikKICAg ICByZXR1cm4gZmFsc2U7CiAKKyAgLy8gSWYgdGhlIGxocyBkb2Vzbid0IHRlbGwgdXMgYW55dGhp bmcgYW5kIHRoZXJlIGFyZSBubyByZWxhdGlvbnMsIHRoZXJlCisgIC8vIGlzIG5vdGhpbmcgdG8g YmUgbGVhcm5lZC4KKyAgaWYgKGxocy52YXJ5aW5nX3AgKCkgJiYgIXZyZWxfcHRyKQorICAgIHJl dHVybiBmYWxzZTsKKwogICBib29sIHJlczsKICAgLy8gUHJvY2VzcyBsb2dpY2FscyBhcyB0aGV5 IGhhdmUgc3BlY2lhbCBoYW5kbGluZy4KICAgaWYgKGlzX2dpbXBsZV9sb2dpY2FsX3AgKHN0bXQp KQogICAgIHsKKyAgICAgIC8vIElmIHRoZSBsaHMgZG9lc24ndCB0ZWxsIHVzIGFueXRoaW5nLCBu ZWl0aGVyIHdpbGwgY29tYmluaW5nIG9wZXJhbmRzLgorICAgICAgaWYgKGxocy52YXJ5aW5nX3Ag KCkpCisJcmV0dXJuIGZhbHNlOworCiAgICAgICB1bnNpZ25lZCBpZHg7CiAgICAgICBpZiAoKGlk eCA9IHRyYWNlci5oZWFkZXIgKCJjb21wdXRlX29wZXJhbmQgIikpKQogCXsKZGlmZiAtLWdpdCBh L2djYy9yYW5nZS1vcC5jYyBiL2djYy9yYW5nZS1vcC5jYwppbmRleCBmN2MxZTg0ZTBiZC4uMTM2 YjcwOTM4NWMgMTAwNjQ0Ci0tLSBhL2djYy9yYW5nZS1vcC5jYworKysgYi9nY2MvcmFuZ2Utb3Au Y2MKQEAgLTQyMTIsNiArNDIxMiwxMCBAQCBwdWJsaWM6CiAJCSAgICAgICAgY29uc3Qgd2lkZV9p bnQgJmxoX3ViLAogCQkgICAgICAgIGNvbnN0IHdpZGVfaW50ICZyaF9sYiwKIAkJICAgICAgICBj b25zdCB3aWRlX2ludCAmcmhfdWIpIGNvbnN0OworICB2aXJ0dWFsIGJvb2wgb3AyX3JhbmdlIChp cmFuZ2UgJnIsIHRyZWUgdHlwZSwKKwkJCSAgY29uc3QgaXJhbmdlICZsaHMsCisJCQkgIGNvbnN0 IGlyYW5nZSAmb3AxLAorCQkJICByZWxhdGlvbl90cmlvID0gVFJJT19WQVJZSU5HKSBjb25zdDsK IH0gb3BfcG9pbnRlcl9wbHVzOwogCiB2b2lkCkBAIC00MjU4LDYgKzQyNjIsMjUgQEAgcG9pbnRl cl9wbHVzX29wZXJhdG9yOjp3aV9mb2xkIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwKICAgIHIuc2V0 X3ZhcnlpbmcgKHR5cGUpOwogfQogCitib29sCitwb2ludGVyX3BsdXNfb3BlcmF0b3I6Om9wMl9y YW5nZSAoaXJhbmdlICZyLCB0cmVlIHR5cGUsCisJCQkJICBjb25zdCBpcmFuZ2UgJmxocyBBVFRS SUJVVEVfVU5VU0VELAorCQkJCSAgY29uc3QgaXJhbmdlICZvcDEgQVRUUklCVVRFX1VOVVNFRCwK KwkJCQkgIHJlbGF0aW9uX3RyaW8gdHJpbykgY29uc3QKK3sKKyAgcmVsYXRpb25fa2luZCByZWwg PSB0cmlvLmxoc19vcDEgKCk7CisgIHIuc2V0X3ZhcnlpbmcgKHR5cGUpOworCisgIC8vIElmIHRo ZSBMSFMgYW5kIE9QMSBhcmUgZXF1YWwsIHRoZSBvcDIgbXVzdCBiZSB6ZXJvLgorICBpZiAocmVs ID09IFZSRUxfRVEpCisgICAgci5zZXRfemVybyAodHlwZSk7CisgIC8vIElmIHRoZSBMSFMgYW5k IE9QMSBhcmUgbm90IGVxdWFsLCB0aGUgb2Zmc2V0IG11c3QgYmUgbm9uLXplcm8uCisgIGVsc2Ug aWYgKHJlbCA9PSBWUkVMX05FKQorICAgIHIuc2V0X25vbnplcm8gKHR5cGUpOworICBlbHNlCisg ICAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gdHJ1ZTsKK30KIAogY2xhc3MgcG9pbnRlcl9taW5f bWF4X29wZXJhdG9yIDogcHVibGljIHJhbmdlX29wZXJhdG9yCiB7CmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy9wcjEwODM4NS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMDgz ODUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTNiYWJmMDZkOWEK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9wcjEwODM4NS5jCkBAIC0w LDAgKzEsMzkgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1P MiAtZmR1bXAtdHJlZS1ldnJwIiB9ICovCisKK3ZvaWQgYmFyKGNoYXIgKik7CisKKy8qIEVuc3Vy ZSB0aGF0IFBUUjEgPSBQVFIyICsgT0ZGIHByb3Blcmx5IHBpY2tzIHVwIHRoZSB6ZXJvIGFuZCBu b24temVybworICAgcHJvcGVydGllcyBpZiBQVFIxIGFuZCBQVFIyIGFyZSBrbm93biBlcXVhbCBv ciBub24tZXF1YWwuICAqLworCit2b2lkIGZvbzEgKGNoYXIgKnAsIGNoYXIgKnBwLCBpbnQgb2Zm KQoreworICBjaGFyICpxID0gcCArIG9mZjsKKyAgaWYgKHEgIT0gcCkKKyAgICB7CisgICAgICBp ZiAob2ZmID09IDApCisJICBiYXIgKHEpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlm IChvZmYgIT0gMCkKKyAgICAgICAgYmFyIChwKTsKKyAgICB9Cit9CisKK3ZvaWQgZm9vMiAoY2hh ciAqcCwgY2hhciAqcHAsIGludCBvZmYpCit7CisgIGNoYXIgKnEgPSBwICsgb2ZmOworICBpZiAo cSA9PSBwKQorICAgIHsKKyAgICAgIGlmIChvZmYgIT0gMCkKKyAgICAgICAgYmFyIChwKTsKKyAg ICB9CisgIGVsc2UKKyAgICB7CisgICAgICBpZiAob2ZmID09IDApCisJICBiYXIgKHEpOworICAg IH0KK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAiYmFyIiAiZXZycCIg fSB9ICovCi0tIAoyLjM5LjAKCg== --------------KbpERdmqpN9CbmsLqiW030PT--