From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52e.google.com (mail-pg1-x52e.google.com [IPv6:2607:f8b0:4864:20::52e]) by sourceware.org (Postfix) with ESMTPS id 8D8303858CDA for ; Sun, 25 Sep 2022 16:28:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8D8303858CDA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ventanamicro.com Received: by mail-pg1-x52e.google.com with SMTP id 78so4555011pgb.13 for ; Sun, 25 Sep 2022 09:28:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; h=content-language:to:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date; bh=38g8fRwSzFDQ8iJiB3Ol3qepHm3yheTfW8FslJkNGuk=; b=GGYDMHjWVzbxnrWxoEmQbXc4B6uOqJ2cUnpvDqwTH/5Y7ZezUhnnsPbVQk+FuTTTYC EHa6DdW6vnRCLKmwg5MS3ELdSHb/LFd+wEo029yW4dcxsHil+olq9UtXmpo6iu+X2S9w +zIzatOiRGBM4y49H1ivRxyrVsK76OHZRNpNeH3R1qmvAJIzPe+rlvisBWiZWwT+P4UM SFwVTxg05+bhDEbNGd8w7BFtY8dVduEZQjclJh7ZIV3dD/aYgoc6NJgtuBCLaIJdPKzS NPJywZBOpxSfJlKFNphxnz4VQSIj9K7PA2siCUsFV9AfBiglZ/U0tl5bJacLkUeqZD36 4i3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-language:to:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date; bh=38g8fRwSzFDQ8iJiB3Ol3qepHm3yheTfW8FslJkNGuk=; b=BPS5za264rVtwYUUOEZDQ8MMncUEaci4iZucQrL5n5o3Vv+lfrbteruXHNoHAll2b+ 2p/WsDsvRKPv6yzfGxkBEtvN3XZ+A450VmGcY2baq5Gx97gdbdtfgz9AJKr9We/520og Nifku0OBl/h8PpVfJEdcREhgcMDr/x+8mCu2csDiwD/kVmi3JvvRSFRnUgB58pJ0aZQR l5wvQgxbMitRe7/n+mKBOHa3soYthI+w6OkjmK0MI3gkGD6bYj7H6kRO58KppDiyLUVu jFyQLeYL55oqgyCgRwObQQt4iGdnWJMZ1eQdApYcgzyIMjkUBdPxeD9MQPV504QH+YBa qQxA== X-Gm-Message-State: ACrzQf1RBO8p9cBLkwl1NGARMxj5LdANvyPApvSFyfmzAylCUbtlRmio lICX3LjrM2yYaIH6aBTLv8L51mS0Hx8+G1o8 X-Google-Smtp-Source: AMsMyM5n1eQ7V7PbwSuGPGeEjADOyRe0oS3cWlhG06X5Nk7CWBeU9RxpUE4EYRuKprcplQBW1/lLsA== X-Received: by 2002:aa7:838a:0:b0:536:101a:9ccf with SMTP id u10-20020aa7838a000000b00536101a9ccfmr19198754pfm.18.1664123337261; Sun, 25 Sep 2022 09:28:57 -0700 (PDT) Received: from ?IPV6:2601:681:8600:13d0::f0a? ([2601:681:8600:13d0::f0a]) by smtp.gmail.com with ESMTPSA id mm10-20020a17090b358a00b002005f5ab6a8sm4939148pjb.29.2022.09.25.09.28.56 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Sep 2022 09:28:56 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------kqOfZR9DA5c8a0XME9X09XUo" Message-ID: Date: Sun, 25 Sep 2022 10:28:55 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 From: Jeff Law Subject: [RFA] Minor improvement to coremark, avoid unconditional jump to return To: gcc-patches@gcc.gnu.org Content-Language: en-US X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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. --------------kqOfZR9DA5c8a0XME9X09XUo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This is a minor improvement for the core_list_find routine in coremark. Basically for riscv, and likely other targets, we can end up with an unconditional jump to a return statement.    This is a result of compensation code created by bb-reorder, and no jump optimization pass runs after bb-reorder to clean this stuff up. This patch utilizes preexisting code to identify suitable branch targets as well as preexisting code to emit a suitable return, so it's pretty simple.  Note that when we arrange to do this optimization, the original return block may become unreachable. So we conditionally call delete_unreachable_blocks to fix that up. This triggers ~160 times during an x86_64 bootstrap.  Naturally it bootstraps and regression tests on x86_64. I've also bootstrapped this on riscv64, regression testing with qemu shows some regressions, but AFAICT they're actually qemu bugs with signal handling/delivery -- qemu user mode emulation is not consistently calling user defined signal handlers.  Given the same binary, sometimes they'll get called and the test passes, other times the handler isn't called and the test (of course) fails. I'll probably spend some time to try and chase this down for the sake of making testing easier. OK for the trunk? Jeff --------------kqOfZR9DA5c8a0XME9X09XUo Content-Type: text/plain; charset=UTF-8; name="J" Content-Disposition: attachment; filename="J" Content-Transfer-Encoding: base64 Y29tbWl0IGY5YTkxMTlmYTQ3Zjk0MzQ4MzA1YTg4M2ZkODhjMjM2NDdmYjFiMDcKQXV0aG9y OiBKZWZmIExhdyA8amVmZnJleWFsYXdAZ21haWwuY29tPgpEYXRlOiAgIFN1biBTZXAgMjUg MTI6MjM6NTkgMjAyMiAtMDQwMAoKICAgIGdjYy8KICAgICAgICAgICAgKiBjZmdjbGVhbnVw LmNjIChiYl9pc19qdXN0X3JldHVybik6IE5vIGxvbmdlciBzdGF0aWMuCiAgICAgICAgICAg ICogY2ZnY2xlYW51cC5oIChiYl9pc19qdXN0X3JldHVybik6IEFkZCBwcm90b3R5cGUuCiAg ICAgICAgICAgICogY2ZncnRsLmNjIChmaXh1cF9yZW9yZGVyX2NoYWluKTogRG8gbm90IGNy ZWF0ZSBhbgogICAgICAgICAgICB1bmNvbmRpdGlvbmFsIGp1bXAgdG8gYSByZXR1cm4gYmxv Y2suICBDb25kaXRpb25hbGx5CiAgICAgICAgICAgIHJlbW92ZSB1bnJlYWNoYWJsZSBibG9j a3MuCiAgICAKICAgIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi8KICAgIAogICAg ICAgICAgICAqIHJldC0xLmM6IE5ldyB0ZXN0LgoKZGlmZiAtLWdpdCBhL2djYy9jZmdjbGVh bnVwLmNjIGIvZ2NjL2NmZ2NsZWFudXAuY2MKaW5kZXggYThiMDEzOWJiNGQuLmEzNjNlMGI0 ZGEzIDEwMDY0NAotLS0gYS9nY2MvY2ZnY2xlYW51cC5jYworKysgYi9nY2MvY2ZnY2xlYW51 cC5jYwpAQCAtMjU5OSw3ICsyNTk5LDcgQEAgdHJpdmlhbGx5X2VtcHR5X2JiX3AgKGJhc2lj X2Jsb2NrIGJiKQogICAgcmV0dXJuIHZhbHVlLiAgRmlsbCBpbiAqUkVUIGFuZCAqVVNFIHdp dGggdGhlIHJldHVybiBhbmQgdXNlIGluc25zCiAgICBpZiBhbnkgZm91bmQsIG90aGVyd2lz ZSBOVUxMLiAgQWxsIENMT0JCRVJzIGFyZSBpZ25vcmVkLiAgKi8KIAotc3RhdGljIGJvb2wK K2Jvb2wKIGJiX2lzX2p1c3RfcmV0dXJuIChiYXNpY19ibG9jayBiYiwgcnR4X2luc24gKipy ZXQsIHJ0eF9pbnNuICoqdXNlKQogewogICAqcmV0ID0gKnVzZSA9IE5VTEw7CmRpZmYgLS1n aXQgYS9nY2MvY2ZnY2xlYW51cC5oIGIvZ2NjL2NmZ2NsZWFudXAuaAppbmRleCBhNmQ4ODJm OThhNC4uZjEwMjFjYTgzNWYgMTAwNjQ0Ci0tLSBhL2djYy9jZmdjbGVhbnVwLmgKKysrIGIv Z2NjL2NmZ2NsZWFudXAuaApAQCAtMzAsNSArMzAsNiBAQCBleHRlcm4gaW50IGZsb3dfZmlu ZF9oZWFkX21hdGNoaW5nX3NlcXVlbmNlIChiYXNpY19ibG9jaywgYmFzaWNfYmxvY2ssCiBl eHRlcm4gYm9vbCBkZWxldGVfdW5yZWFjaGFibGVfYmxvY2tzICh2b2lkKTsKIGV4dGVybiB2 b2lkIGRlbGV0ZV9kZWFkX2p1bXB0YWJsZXMgKHZvaWQpOwogZXh0ZXJuIGJvb2wgY2xlYW51 cF9jZmcgKGludCk7CitleHRlcm4gYm9vbCBiYl9pc19qdXN0X3JldHVybiAoYmFzaWNfYmxv Y2ssIHJ0eF9pbnNuICoqLCBydHhfaW5zbiAqKik7CiAKICNlbmRpZiAvKiBHQ0NfQ0ZHQ0xF QU5VUF9IICovCmRpZmYgLS1naXQgYS9nY2MvY2ZncnRsLmNjIGIvZ2NjL2NmZ3J0bC5jYwpp bmRleCBhMDVjMzM4YTRjOC4uOTBjZDZlZTU2YTcgMTAwNjQ0Ci0tLSBhL2djYy9jZmdydGwu Y2MKKysrIGIvZ2NjL2NmZ3J0bC5jYwpAQCAtMzkwMSw2ICszOTAxLDcgQEAgZml4dXBfcmVv cmRlcl9jaGFpbiAodm9pZCkKICAgLyogTm93IGFkZCBqdW1wcyBhbmQgbGFiZWxzIGFzIG5l ZWRlZCB0byBtYXRjaCB0aGUgYmxvY2tzIG5ldwogICAgICBvdXRnb2luZyBlZGdlcy4gICov CiAKKyAgYm9vbCByZW1vdmVfdW5yZWFjaGFibGVfYmxvY2tzID0gZmFsc2U7CiAgIGZvciAo YmIgPSBFTlRSWV9CTE9DS19QVFJfRk9SX0ZOIChjZnVuKS0+bmV4dF9iYjsgYmIgOyBiYiA9 IChiYXNpY19ibG9jaykKICAgICAgICBiYi0+YXV4KQogICAgIHsKQEAgLTQwNDMsMTAgKzQw NDQsMzAgQEAgZml4dXBfcmVvcmRlcl9jaGFpbiAodm9pZCkKIAkgICAgY29udGludWU7CiAJ fQogCisgICAgICAvKiBJZiBFX0ZBTEwtPmRlc3QgaXMganVzdCBhIHJldHVybiBibG9jaywg dGhlbiB3ZSBjYW4gZW1pdCBhCisJIHJldHVybiByYXRoZXIgdGhhbiBhIGp1bXAgdG8gdGhl IHJldHVybiBibG9jay4gICovCisgICAgICBydHhfaW5zbiAqcmV0LCAqdXNlOworICAgICAg YmFzaWNfYmxvY2sgZGVzdDsKKyAgICAgIGlmIChiYl9pc19qdXN0X3JldHVybiAoZV9mYWxs LT5kZXN0LCAmcmV0LCAmdXNlKQorCSAgJiYgKFBBVFRFUk4gKHJldCkgPT0gc2ltcGxlX3Jl dHVybl9ydHggfHwgUEFUVEVSTiAocmV0KSA9PSByZXRfcnR4KSkKKwl7CisJICByZXRfbGFi ZWwgPSBQQVRURVJOIChyZXQpOworCSAgZGVzdCA9IEVYSVRfQkxPQ0tfUFRSX0ZPUl9GTiAo Y2Z1bik7CisKKwkgIC8qIEVfRkFMTC0+ZGVzdCBtaWdodCBiZWNvbWUgdW5yZWFjaGFibGUg YXMgYSByZXN1bHQgb2YKKwkgICAgIHJlcGxhY2luZyB0aGUganVtcCB3aXRoIGEgcmV0dXJu LiAgU28gYXJyYW5nZSB0byByZW1vdmUKKwkgICAgIHVucmVhY2hhYmxlIGJsb2Nrcy4gICov CisJICByZW1vdmVfdW5yZWFjaGFibGVfYmxvY2tzID0gdHJ1ZTsKKwl9CisgICAgICBlbHNl CisJeworCSAgZGVzdCA9IGVfZmFsbC0+ZGVzdDsKKwl9CisKICAgICAgIC8qIFdlIGdvdCBo ZXJlIGlmIHdlIG5lZWQgdG8gYWRkIGEgbmV3IGp1bXAgaW5zbi4gCiAJIE5vdGUgZm9yY2Vf bm9uZmFsbHRocnUgY2FuIGRlbGV0ZSBFX0ZBTEwgYW5kIHRodXMgd2UgaGF2ZSB0bwogCSBz YXZlIEVfRkFMTC0+c3JjIHByaW9yIHRvIHRoZSBjYWxsIHRvIGZvcmNlX25vbmZhbGx0aHJ1 LiAgKi8KLSAgICAgIG5iID0gZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0IChlX2Zh bGwsIGVfZmFsbC0+ZGVzdCwgcmV0X2xhYmVsKTsKKyAgICAgIG5iID0gZm9yY2Vfbm9uZmFs bHRocnVfYW5kX3JlZGlyZWN0IChlX2ZhbGwsIGRlc3QsIHJldF9sYWJlbCk7CiAgICAgICBp ZiAobmIpCiAJewogCSAgbmItPmF1eCA9IGJiLT5hdXg7CkBAIC00MTM0LDYgKzQxNTUsMTIg QEAgZml4dXBfcmVvcmRlcl9jaGFpbiAodm9pZCkKIAkJICBlaV9uZXh0ICgmZWkyKTsKIAkg ICAgfQogICAgICAgfQorCisgIC8qIFJlcGxhY2luZyBhIGp1bXAgd2l0aCBhIHJldHVybiBt YXkgaGF2ZSBleHBvc2VkIGFuIHVucmVhY2hhYmxlCisgICAgIGJsb2NrLiAgQ29uZGl0aW9u YWxseSByZW1vdmUgdGhlbSBpZiBzdWNoIHRyYW5zZm9ybWF0aW9ucyB3ZXJlCisgICAgIG1h ZGUuICAqLworICBpZiAocmVtb3ZlX3VucmVhY2hhYmxlX2Jsb2NrcykKKyAgICBkZWxldGVf dW5yZWFjaGFibGVfYmxvY2tzICgpOwogfQogDAogLyogUGVyZm9ybSBzYW5pdHkgY2hlY2tz IG9uIHRoZSBpbnNuIGNoYWluLgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3JldC0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcmV0 LTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjgxMzNhYTQy MjYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cmV0LTEuYwpAQCAtMCwwICsxLDQxIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyog eyBkZy1vcHRpb25zICItTzIgLWRwIiB9ICovCisvKiBUaGlzIHdhcyBleHRyYWN0ZWQgZnJv bSBjb3JlbWFyay4gICovCisKKwordHlwZWRlZiBzaWduZWQgc2hvcnQgZWVfczE2OwordHlw ZWRlZiBzdHJ1Y3QgbGlzdF9kYXRhX3MKK3sKKyAgICBlZV9zMTYgZGF0YTE2OworICAgIGVl X3MxNiBpZHg7Cit9IGxpc3RfZGF0YTsKKwordHlwZWRlZiBzdHJ1Y3QgbGlzdF9oZWFkX3MK K3sKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkX3MgKm5leHQ7CisgICAgc3RydWN0IGxpc3RfZGF0 YV9zICppbmZvOworfSBsaXN0X2hlYWQ7CisKKworbGlzdF9oZWFkICoKK2NvcmVfbGlzdF9m aW5kKGxpc3RfaGVhZCAqbGlzdCwgbGlzdF9kYXRhICppbmZvKQoreworICAgIGlmIChpbmZv LT5pZHggPj0gMCkKKyAgICB7CisgICAgICAgIHdoaWxlIChsaXN0ICYmIChsaXN0LT5pbmZv LT5pZHggIT0gaW5mby0+aWR4KSkKKyAgICAgICAgICAgIGxpc3QgPSBsaXN0LT5uZXh0Owor ICAgICAgICByZXR1cm4gbGlzdDsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAg d2hpbGUgKGxpc3QgJiYgKChsaXN0LT5pbmZvLT5kYXRhMTYgJiAweGZmKSAhPSBpbmZvLT5k YXRhMTYpKQorICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7CisgICAgICAgIHJldHVy biBsaXN0OworICAgIH0KK30KKworLyogVGhlcmUgaXMgb25seSBvbmUgbGVnaXRpbWF0ZSB1 bmNvbmRpdGlvbmFsIGp1bXAsIHNvIHRlc3QgZm9yIHRoYXQsCisgICB3aGljaCB3aWxsIGNh dGNoIHRoZSBjYXNlIHdoZXJlIGJiLXJlb3JkZXIgbGVhdmVzIGEganVtcCB0byBhIHJldAor ICAgaW4gdGhlIElMLiAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAianVtcCIgMSB9IH0gKi8KKwo= --------------kqOfZR9DA5c8a0XME9X09XUo--