From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 2FE9F3858D33 for ; Thu, 28 Jul 2022 16:46:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2FE9F3858D33 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 68D1B106F; Thu, 28 Jul 2022 09:46:24 -0700 (PDT) Received: from [10.57.11.217] (unknown [10.57.11.217]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4D39C3F70D; Thu, 28 Jul 2022 09:46:23 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------HW40iCChIH02SnsLUasAY9J6" Message-ID: Date: Thu, 28 Jul 2022 17:46:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 From: Richard Earnshaw Subject: cselib: add function to check if SET is redundant [PR106187] Reply-To: Richard Earnshaw To: "gcc-patches@gcc.gnu.org" , Richard Biener Content-Language: en-GB X-Spam-Status: No, score=-3496.8 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, 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-List-Received-Date: Thu, 28 Jul 2022 16:46:27 -0000 This is a multi-part message in MIME format. --------------HW40iCChIH02SnsLUasAY9J6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit [resend with correct subject line] A SET operation that writes memory may have the same value as an earlier store but if the alias sets of the new and earlier store do not conflict then the set is not truly redundant. This can happen, for example, if objects of different types share a stack slot. To fix this we define a new function in cselib that first checks for equality and if that is successful then finds the earlier store in the value history and checks the alias sets. The routine is used in two places elsewhere in the compiler. Firstly in cfgcleanup and secondly in postreload. gcc/ChangeLog: * cselib.h (cselib_redundant_set_p): Declare. * cselib.cc: Include alias.h (cselib_redundant_set_p): New function. * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead of rtx_equal_for_cselib_p. * postreload.c (reload_cse_simplify): Use cselib_redundant_set_p. (reload_cse_noop_set_p): Delete. --------------HW40iCChIH02SnsLUasAY9J6 Content-Type: text/x-patch; charset=UTF-8; name="pr106187-master.patch" Content-Disposition: attachment; filename="pr106187-master.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jZmdjbGVhbnVwLmNjIGIvZ2NjL2NmZ2NsZWFudXAuY2MKaW5k ZXggMTgwNDdkYTdiMjQuLmE4YjAxMzliYjRkIDEwMDY0NAotLS0gYS9nY2MvY2ZnY2xlYW51 cC5jYworKysgYi9nY2MvY2ZnY2xlYW51cC5jYwpAQCAtMjA4LDcgKzIwOCw3IEBAIG1hcmtf ZWZmZWN0IChydHggZXhwLCByZWdzZXQgbm9uZXF1YWwpCiAgICAgICByZXR1cm4gZmFsc2U7 CiAKICAgICBjYXNlIFNFVDoKLSAgICAgIGlmIChydHhfZXF1YWxfZm9yX2NzZWxpYl9wIChT RVRfREVTVCAoZXhwKSwgU0VUX1NSQyAoZXhwKSkpCisgICAgICBpZiAoY3NlbGliX3JlZHVu ZGFudF9zZXRfcCAoZXhwKSkKIAlyZXR1cm4gZmFsc2U7CiAgICAgICBkZXN0ID0gU0VUX0RF U1QgKGV4cCk7CiAgICAgICBpZiAoZGVzdCA9PSBwY19ydHgpCmRpZmYgLS1naXQgYS9nY2Mv Y3NlbGliLmNjIGIvZ2NjL2NzZWxpYi5jYwppbmRleCA2NzY5YmVlZWFmOC4uZmNmZDgzNDBh NGEgMTAwNjQ0Ci0tLSBhL2djYy9jc2VsaWIuY2MKKysrIGIvZ2NjL2NzZWxpYi5jYwpAQCAt MzIsNiArMzIsNyBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAg SWYgbm90IHNlZQogI2luY2x1ZGUgImR1bXBmaWxlLmgiCiAjaW5jbHVkZSAiY3NlbGliLmgi CiAjaW5jbHVkZSAiZnVuY3Rpb24tYWJpLmgiCisjaW5jbHVkZSAiYWxpYXMuaCIKIAogLyog QSBsaXN0IG9mIGNzZWxpYl92YWwgc3RydWN0dXJlcy4gICovCiBzdHJ1Y3QgZWx0X2xpc3QK QEAgLTExNTcsNiArMTE1OCw3NSBAQCBydHhfZXF1YWxfZm9yX2NzZWxpYl8xIChydHggeCwg cnR4IHksIG1hY2hpbmVfbW9kZSBtZW1tb2RlLCBpbnQgZGVwdGgpCiAgIHJldHVybiAxOwog fQogCisvKiBXcmFwcGVyIGZvciBydHhfZXF1YWxfZm9yX2NzZWxpYl9wIHRvIGRldGVybWlu ZSB3aGV0aGVyIGEgU0VUIGlzCisgICB0cnVseSByZWR1bmRhbnQsIHRha2luZyBpbnRvIGFj Y291bnQgYWxpYXNpbmcgaW5mb3JtYXRpb24uICAqLworYm9vbAorY3NlbGliX3JlZHVuZGFu dF9zZXRfcCAocnR4IHNldCkKK3sKKyAgZ2NjX2Fzc2VydCAoR0VUX0NPREUgKHNldCkgPT0g U0VUKTsKKyAgcnR4IGRlc3QgPSBTRVRfREVTVCAoc2V0KTsKKyAgaWYgKGNzZWxpYl9yZWdf c2V0X21vZGUgKGRlc3QpICE9IEdFVF9NT0RFIChkZXN0KSkKKyAgICByZXR1cm4gZmFsc2U7 CisKKyAgaWYgKCFydHhfZXF1YWxfZm9yX2NzZWxpYl9wIChkZXN0LCBTRVRfU1JDIChzZXQp KSkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgd2hpbGUgKEdFVF9DT0RFIChkZXN0KSA9PSBT VUJSRUcKKwkgfHwgR0VUX0NPREUgKGRlc3QpID09IFpFUk9fRVhUUkFDVAorCSB8fCBHRVRf Q09ERSAoZGVzdCkgPT0gU1RSSUNUX0xPV19QQVJUKQorICAgIGRlc3QgPSBYRVhQIChkZXN0 LCAwKTsKKworICBpZiAoIWZsYWdfc3RyaWN0X2FsaWFzaW5nIHx8ICFNRU1fUCAoZGVzdCkp CisgICAgcmV0dXJuIHRydWU7CisKKyAgLyogRm9yIGEgc3RvcmUgd2UgbmVlZCB0byBjaGVj ayB0aGF0IHN1cHByZXNzaW5nIGl0IHdpbGwgbm90IGNoYW5nZQorICAgICB0aGUgZWZmZWN0 aXZlIGFsaWFzIHNldC4gICovCisgIHJ0eCBkZXN0X2FkZHIgPSBYRVhQIChkZXN0LCAwKTsK KworICAvKiBMb29rdXAgdGhlIGVxdWl2YWxlbnRzIHRvIHRoZSBkZXN0LiAgVGhpcyBpcyBt b3JlIGxpa2VseSB0byBzdWNjZWVkCisgICAgIHRoYW4gbG9va2luZyB1cCB0aGUgZXF1aXZh bGVudHMgdG8gdGhlIHNvdXJjZSAoZm9yIGV4YW1wbGUsIHdoZW4gdGhlCisgICAgIHNyYyBp cyBzb21lIGZvcm0gb2YgY29uc3RhbnQpLiAgKi8KKyAgY3NlbGliX3ZhbCAqc3JjX3ZhbCA9 IGNzZWxpYl9sb29rdXAgKFNFVF9ERVNUIChzZXQpLAorCQkJCSAgICAgICBHRVRfTU9ERSAo U0VUX0RFU1QgKHNldCkpLAorCQkJCSAgICAgICAwLCBWT0lEbW9kZSk7CisKKyAgaWYgKHNy Y192YWwpCisgICAgeworICAgICAgLyogV2FsayB0aGUgbGlzdCBvZiBzb3VyY2UgZXF1aXZh bGVudHMgdG8gZmluZCB0aGUgTUVNIGFjY2Vzc2luZyB0aGUgc2FtZQorCSBsb2NhdGlvbi4g ICovCisgICAgICBmb3IgKGVsdF9sb2NfbGlzdCAqbCA9IHNyY192YWwtPmxvY3M7IGw7IGwg PSBsLT5uZXh0KQorCXsKKwkgIHJ0eCBzcmNfZXF1aXYgPSBsLT5sb2M7CisJICB3aGlsZSAo R0VUX0NPREUgKHNyY19lcXVpdikgPT0gU1VCUkVHCisJCSB8fCBHRVRfQ09ERSAoc3JjX2Vx dWl2KSA9PSBaRVJPX0VYVFJBQ1QKKwkJIHx8IEdFVF9DT0RFIChzcmNfZXF1aXYpID09IFNU UklDVF9MT1dfUEFSVCkKKwkgICAgc3JjX2VxdWl2ID0gWEVYUCAoc3JjX2VxdWl2LCAwKTsK KworCSAgaWYgKE1FTV9QIChzcmNfZXF1aXYpKQorCSAgICB7CisJICAgICAgLyogTWF0Y2gg dGhlIE1FTXMgYnkgY29tcGFyaW5nIHRoZSBhZGRyZXNzZXMuICAqLworCSAgICAgIGlmIChy dHhfZXF1YWxfZm9yX2NzZWxpYl8xIChkZXN0X2FkZHIsIFhFWFAgKHNyY19lcXVpdiwgMCks CisJCQkJCSAgR0VUX01PREUgKGRlc3QpLCAwKSkKKwkJcmV0dXJuIGFsaWFzX3NldHNfY29u ZmxpY3RfcCAoTUVNX0FMSUFTX1NFVCAoZGVzdCksCisJCQkJCSAgICAgIE1FTV9BTElBU19T RVQgKHNyY19lcXVpdikpOworCSAgICB9CisJfQorICAgIH0KKworICAvKiBXZSBmYWlsZWQg dG8gZmluZCBhIHJlY29yZGVkIHZhbHVlIGluIHRoZSBjc2VsaWIgaGlzdG9yeSwgc28gdHJ5 IHRoZQorICAgICBzb3VyY2Ugb2YgdGhpcyBzZXQuICAqLworICBydHggc3JjID0gU0VUX1NS QyAoc2V0KTsKKyAgd2hpbGUgKEdFVF9DT0RFIChzcmMpID09IFNVQlJFRykKKyAgICBzcmMg PSBYRVhQIChzcmMsIDApOworCisgIGlmIChNRU1fUCAoc3JjKSAmJiBydHhfZXF1YWxfZm9y X2NzZWxpYl8xIChkZXN0X2FkZHIsIFhFWFAgKHNyYywgMCksCisJCQkJCSAgICAgR0VUX01P REUgKGRlc3QpLCAwKSkKKyAgICByZXR1cm4gYWxpYXNfc2V0c19jb25mbGljdF9wIChNRU1f QUxJQVNfU0VUIChkZXN0KSwKKwkJCQkgIE1FTV9BTElBU19TRVQgKHNyYykpOworCisgIHJl dHVybiBmYWxzZTsKK30KKwogLyogSGVscGVyIGZ1bmN0aW9uIGZvciBjc2VsaWJfaGFzaF9y dHguICBBcmd1bWVudHMgbGlrZSBmb3IgY3NlbGliX2hhc2hfcnR4LAogICAgZXhjZXB0IHRo YXQgaXQgaGFzaGVzIChwbHVzOlAgeCBjKS4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9jc2Vs aWIuaCBiL2djYy9jc2VsaWIuaAppbmRleCA5YWU2NWU2NDU5ZS4uYjA5MDUwNTNlYTUgMTAw NjQ0Ci0tLSBhL2djYy9jc2VsaWIuaAorKysgYi9nY2MvY3NlbGliLmgKQEAgLTgzLDYgKzgz LDcgQEAgZXh0ZXJuIHZvaWQgY3NlbGliX3Byb2Nlc3NfaW5zbiAocnR4X2luc24gKik7CiBl eHRlcm4gYm9vbCBmcF9zZXR0ZXJfaW5zbiAocnR4X2luc24gKik7CiBleHRlcm4gbWFjaGlu ZV9tb2RlIGNzZWxpYl9yZWdfc2V0X21vZGUgKGNvbnN0X3J0eCk7CiBleHRlcm4gaW50IHJ0 eF9lcXVhbF9mb3JfY3NlbGliXzEgKHJ0eCwgcnR4LCBtYWNoaW5lX21vZGUsIGludCk7Citl eHRlcm4gYm9vbCBjc2VsaWJfcmVkdW5kYW50X3NldF9wIChydHgpOwogZXh0ZXJuIGludCBy ZWZlcmVuY2VzX3ZhbHVlX3AgKGNvbnN0X3J0eCwgaW50KTsKIGV4dGVybiBydHggY3NlbGli X2V4cGFuZF92YWx1ZV9ydHggKHJ0eCwgYml0bWFwLCBpbnQpOwogdHlwZWRlZiBydHggKCpj c2VsaWJfZXhwYW5kX2NhbGxiYWNrKShydHgsIGJpdG1hcCwgaW50LCB2b2lkICopOwpkaWZm IC0tZ2l0IGEvZ2NjL3Bvc3RyZWxvYWQuY2MgYi9nY2MvcG9zdHJlbG9hZC5jYwppbmRleCBk MWM5OWZlNmRjOS4uNDFmNjFkMzI2NDggMTAwNjQ0Ci0tLSBhL2djYy9wb3N0cmVsb2FkLmNj CisrKyBiL2djYy9wb3N0cmVsb2FkLmNjCkBAIC00Myw3ICs0Myw2IEBAIGFsb25nIHdpdGgg R0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjaW5jbHVkZSAiZnVu Y3Rpb24tYWJpLmgiCiAjaW5jbHVkZSAicnRsLWl0ZXIuaCIKIAotc3RhdGljIGludCByZWxv YWRfY3NlX25vb3Bfc2V0X3AgKHJ0eCk7CiBzdGF0aWMgYm9vbCByZWxvYWRfY3NlX3NpbXBs aWZ5IChydHhfaW5zbiAqLCBydHgpOwogc3RhdGljIHZvaWQgcmVsb2FkX2NzZV9yZWdzXzEg KHZvaWQpOwogc3RhdGljIGludCByZWxvYWRfY3NlX3NpbXBsaWZ5X3NldCAocnR4LCBydHhf aW5zbiAqKTsKQEAgLTc0LDE2ICs3Myw2IEBAIHJlbG9hZF9jc2VfcmVncyAocnR4X2luc24g KmZpcnN0IEFUVFJJQlVURV9VTlVTRUQpCiAgICAgfQogfQogCi0vKiBTZWUgd2hldGhlciBh IHNpbmdsZSBzZXQgU0VUIGlzIGEgbm9vcC4gICovCi1zdGF0aWMgaW50Ci1yZWxvYWRfY3Nl X25vb3Bfc2V0X3AgKHJ0eCBzZXQpCi17Ci0gIGlmIChjc2VsaWJfcmVnX3NldF9tb2RlIChT RVRfREVTVCAoc2V0KSkgIT0gR0VUX01PREUgKFNFVF9ERVNUIChzZXQpKSkKLSAgICByZXR1 cm4gMDsKLQotICByZXR1cm4gcnR4X2VxdWFsX2Zvcl9jc2VsaWJfcCAoU0VUX0RFU1QgKHNl dCksIFNFVF9TUkMgKHNldCkpOwotfQotCiAvKiBUcnkgdG8gc2ltcGxpZnkgSU5TTi4gIFJl dHVybiB0cnVlIGlmIHRoZSBDRkcgbWF5IGhhdmUgY2hhbmdlZC4gICovCiBzdGF0aWMgYm9v bAogcmVsb2FkX2NzZV9zaW1wbGlmeSAocnR4X2luc24gKmluc24sIHJ0eCB0ZXN0cmVnKQpA QCAtMTE4LDcgKzEwNyw3IEBAIHJlbG9hZF9jc2Vfc2ltcGxpZnkgKHJ0eF9pbnNuICppbnNu LCBydHggdGVzdHJlZykKICAgICAgICAgIHRoaXMgb3V0LCBzbyBpdCdzIHNhZmVyIHRvIHNp bXBsaWZ5IGJlZm9yZSB3ZSBkZWxldGUuICAqLwogICAgICAgY291bnQgKz0gcmVsb2FkX2Nz ZV9zaW1wbGlmeV9zZXQgKGJvZHksIGluc24pOwogCi0gICAgICBpZiAoIWNvdW50ICYmIHJl bG9hZF9jc2Vfbm9vcF9zZXRfcCAoYm9keSkpCisgICAgICBpZiAoIWNvdW50ICYmIGNzZWxp Yl9yZWR1bmRhbnRfc2V0X3AgKGJvZHkpKQogCXsKIAkgIGlmIChjaGVja19mb3JfaW5jX2Rl YyAoaW5zbikpCiAJICAgIGRlbGV0ZV9pbnNuX2FuZF9lZGdlcyAoaW5zbik7CkBAIC0xNTcs NyArMTQ2LDcgQEAgcmVsb2FkX2NzZV9zaW1wbGlmeSAocnR4X2luc24gKmluc24sIHJ0eCB0 ZXN0cmVnKQogCSAgcnR4IHBhcnQgPSBYVkVDRVhQIChib2R5LCAwLCBpKTsKIAkgIGlmIChH RVRfQ09ERSAocGFydCkgPT0gU0VUKQogCSAgICB7Ci0JICAgICAgaWYgKCEgcmVsb2FkX2Nz ZV9ub29wX3NldF9wIChwYXJ0KSkKKwkgICAgICBpZiAoISBjc2VsaWJfcmVkdW5kYW50X3Nl dF9wIChwYXJ0KSkKIAkJYnJlYWs7CiAJICAgICAgaWYgKFJFR19QIChTRVRfREVTVCAocGFy dCkpCiAJCSAgJiYgUkVHX0ZVTkNUSU9OX1ZBTFVFX1AgKFNFVF9ERVNUIChwYXJ0KSkpCg== --------------HW40iCChIH02SnsLUasAY9J6--