From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd2b.google.com (mail-io1-xd2b.google.com [IPv6:2607:f8b0:4864:20::d2b]) by sourceware.org (Postfix) with ESMTPS id A737C3858408 for ; Tue, 22 Feb 2022 03:57:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A737C3858408 Received: by mail-io1-xd2b.google.com with SMTP id d19so7959808ioc.8 for ; Mon, 21 Feb 2022 19:57:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=eRI5Q9K9oGnqxLZLRluPVuPLK8sMot87WeoxRCDaoy4=; b=4u3F8CH6jEQAWNBdW/91xnPxZ2VpYe3gpuVGWHVERMiJwrq494R8dWsFgLEsoDWVZd QBen7EwRqaMeQ8HiVix6bQEsQjBhMYxBcktjmbixZJQA6RJwwA5C0Fi8c+jls6PIMYkp hRhBurkuXwKd1rZyJOWe4JbRQfOzn6AtusFhv9eNvtTkDrExlETAa6GWAyaoDoccjGiv YhB3hmy9wfiljHK54KddLfCyeJHH2Wp0E1g/8k7+RD6KOE5d0nhYaciqh/pkdnqYYHk6 OcazRM1SgxDPYnHvZ5iP/LoN5+O8EwJraDnoFs44dIIKMW5wUdPksW3yi7I9j9uSwDt2 5Ctw== X-Gm-Message-State: AOAM533i/bYT1aFNp5KXlTz1EueX/ZAQ7Ngm+P4cP5GUA52jko8QfYRy 71c0mfLmFoeBPU8NKXQLdI+VmxM+ZHttc86NTO90nxRJS7w= X-Google-Smtp-Source: ABdhPJwx6CHo5TTDaYP6ctQzUiG3OFr6rWwsBMRfP1r/fJGTtn5vS9t2r4JBM67YXHqWGh2QAs0inC95yA4gik0iv0k= X-Received: by 2002:a05:6602:3ca:b0:63d:dfc8:fa66 with SMTP id g10-20020a05660203ca00b0063ddfc8fa66mr17720132iov.128.1645502275052; Mon, 21 Feb 2022 19:57:55 -0800 (PST) MIME-Version: 1.0 From: Zhao Wei Liew Date: Tue, 22 Feb 2022 11:57:19 +0800 Message-ID: Subject: [PATCH] tree-optimization: [PR103855] Fold (type)X / (type)Y To: GCC Patches Content-Type: multipart/mixed; boundary="00000000000095324905d8935ae8" X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Tue, 22 Feb 2022 03:57:58 -0000 --00000000000095324905d8935ae8 Content-Type: text/plain; charset="UTF-8" Hi, This is a partial optimization for PR103855. Initially, I looked into optimizing RTL generation or a more complex GIMPLE transformation so that we could optimize other cases as well, such as ((unsigned long long) short / int). However, that is a bit too complex for now. While I continue to look into that change, I've decided to implement this simpler match.pd transformation. Greatly appreciate any feedback on this patch or guidance for implementing the more advanced optimizations! Thanks, Zhao Wei --00000000000095324905d8935ae8 Content-Type: application/octet-stream; name="0001-tree-optimization-PR103855-Fold-type-X-type-Y.patch" Content-Disposition: attachment; filename="0001-tree-optimization-PR103855-Fold-type-X-type-Y.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kzxlg8fi0 RnJvbSBkZDNiYjA1Y2Q3YmU3MmQwODA1OThjYjY5MzU0OWFjNzRkNWNiMDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFvIFdlaSBMaWV3IDx6aGFvd2VpbGlld0BnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTkgRmViIDIwMjIgMTY6Mjg6MzggKzA4MDAKU3ViamVjdDogW1BBVENIXSB0 cmVlLW9wdGltaXphdGlvbjogW1BSMTAzODU1XSBGb2xkICh0eXBlKVggLyAodHlwZSlZCgpUaGlz IHBhdHRlcm4gY29udmVydHMgKHRydW5jX2RpdiAoY29udmVydCBhKSAoY29udmVydCBiKSkgdG8K KGNvbnZlcnQgKHRydW5jX2RpdiBhIGIpKSB3aGVuOgoKMS4gdHlwZSwgYSwgYW5kIGIgYWxsIGhh dmUgdW5zaWduZWQgaW50ZWdlcmFsIHR5cGVzCjIuIGEgYW5kIGIgaGF2ZSB0aGUgc2FtZSB0eXBl IHByZWNpc2lvbgozLiB0eXBlIGhhcyB0eXBlIHByZWNpc2lvbiBhdCBsZWFzdCBhcyBsYXJnZXIg YXMgYSBhbmQgYgoKVGhpcyBpcyB1c2VmdWwgYXMgd2lkZXIgZGl2aXNpb25zIGFyZSB0eXBpY2Fs bHkgbW9yZSBleHBlbnNpdmUuCgpUbyBpbGx1c3RyYXRlIHRoZSBlZmZlY3RzLCBjb25zaWRlciB0 aGUgZm9sbG93aW5nIGNvZGUgc25pcHBldDoKCnVuc2lnbmVkIGxvbmcgbG9uZyBmKHVuc2lnbmVk IGludCBhLCB1bnNpZ25lZCBpbnQgYikgewoJdW5zaWduZWQgbG9uZyBsb25nIGFsbCA9IGE7Cgly ZXR1cm4gYWxsIC8gYjsKfQoKV2l0aG91dCB0aGUgcGF0dGVybiwgZysrIC1zdGQ9YysrMjAgLU8y IGdlbmVyYXRlcyB0aGUgZm9sbG93aW5nCmFzc2VtYmx5OgoKZih1bnNpZ25lZCBpbnQsIHVuc2ln bmVkIGludCk6Cgltb3YgZWF4LCBlZGkKCW1vdiBlc2ksIGVzaQoJeG9yIGVkeCwgZWR4CglkaXYg cnNpCglyZXQKCldpdGggdGhlIHBhdHRlcm4sIGl0IGdlbmVyYXRlcyB0aGlzOgoKZih1bnNpZ25l ZCBpbnQsIHVuc2lnbmVkIGludCk6Cgltb3YgZWF4LCBlZGkKCXhvciBlZHgsIGVkeAoJZGl2IGVz aQoJcmV0CgpUaGlzIGlzIGlkZW50aWNhbCB0byB3aGF0IGNsYW5nKysgLXN0ZD1jKysyMCAtTzIg Z2VuZXJhdGVzLgoKQm9vdHN0cmFwcGVkIGFuZCByZWdyZXNzaW9uIHRlc3RlZCBvbiB4ODZfNjQt cGMtbGludXgtZ251LgoKU2lnbmVkLW9mZi1ieTogWmhhbyBXZWkgTGlldyA8emhhb3dlaWxpZXdA Z21haWwuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzEwMzg1NQoKZ2NjL0NoYW5nZUxvZzoK CgkqIG1hdGNoLnBkOiBBZGQgcGF0dGVybiBmb3IgKHR5cGUpWCAvICh0eXBlKVkuCgpnY2MvdGVz dHN1aXRlL0NoYW5nZUxvZzoKCgkqIGdjYy5kZy90cmVlLXNzYS9kaXZpZGUtOC5jOiBOZXcgdGVz dC4KCSogZ2NjLmRnL3RyZWUtc3NhL2RpdmlkZS05LmM6IE5ldyB0ZXN0LgotLS0KIGdjYy9tYXRj aC5wZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSArKysrKysrKysrKysrKysKIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL2RpdmlkZS04LmMgfCAgOSArKysrKysrKysKIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL2RpdmlkZS05LmMgfCAgOSArKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL2RpdmlkZS04LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9kaXZpZGUtOS5jCgpkaWZmIC0tZ2l0IGEvZ2Nj L21hdGNoLnBkIGIvZ2NjL21hdGNoLnBkCmluZGV4IDEwZjYyMjg0ODYyLi4zOTNiNDM3NTZkZCAx MDA2NDQKLS0tIGEvZ2NjL21hdGNoLnBkCisrKyBiL2djYy9tYXRjaC5wZApAQCAtNjg0LDYgKzY4 NCwyMSBAQCBERUZJTkVfSU5UX0FORF9GTE9BVF9ST1VORF9GTiAoUklOVCkKICAoaWYgKElOVEVH UkFMX1RZUEVfUCAodHlwZSkgfHwgVkVDVE9SX0lOVEVHRVJfVFlQRV9QICh0eXBlKSkKICAgKGNv bnZlcnQgKHRydW5jX21vZCBAMCBAMSkpKSkKIAorLyogKHR5cGUpWCAvICh0eXBlKVkgLT4gKHR5 cGUpKFggLyBZKQorICAgd2hlbiB0aGUgcmVzdWx0aW5nIHR5cGUgaXMgYXQgbGVhc3QgcHJlY2lz ZSBhcyB0aGUgb3JpZ2luYWwgdHlwZXMKKyAgIGFuZCB3aGVuIGFsbCB0aGUgdHlwZXMgYXJlIHVu c2lnbmVkIGludGVncmFsIHR5cGVzLiAqLworKHNpbXBsaWZ5CisgKHRydW5jX2RpdiAoY29udmVy dCBAMCkgKGNvbnZlcnQgQDEpKQorIChpZiAoSU5URUdSQUxfVFlQRV9QICh0eXBlKQorICAgICAg JiYgSU5URUdSQUxfVFlQRV9QIChUUkVFX1RZUEUgKEAwKSkKKyAgICAgICYmIElOVEVHUkFMX1RZ UEVfUCAoVFJFRV9UWVBFIChAMSkpCisgICAgICAmJiBUWVBFX1VOU0lHTkVEICh0eXBlKQorICAg ICAgJiYgVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFIChAMCkpCisgICAgICAmJiBUWVBFX1VOU0lH TkVEIChUUkVFX1RZUEUgKEAxKSkKKyAgICAgICYmIFRZUEVfUFJFQ0lTSU9OIChUUkVFX1RZUEUg KEAwKSkgPT0gVFlQRV9QUkVDSVNJT04gKFRSRUVfVFlQRSAoQDEpKQorICAgICAgJiYgVFlQRV9Q UkVDSVNJT04gKHR5cGUpID49IFRZUEVfUFJFQ0lTSU9OIChUUkVFX1RZUEUgKEAwKSkpCisgIChj b252ZXJ0ICh0cnVuY19kaXYgQDAgQDEpKSkpCisKIC8qIHggKiAoMSArIHkgLyB4KSAtIHkgLT4g eCAtIHkgJSB4ICovCiAoc2ltcGxpZnkKICAobWludXMgKG11bHQ6Y3MgQDAgKHBsdXM6cyAodHJ1 bmNfZGl2OnMgQDEgQDApIGludGVnZXJfb25lcCkpIEAxKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdHJlZS1zc2EvZGl2aWRlLTguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Ry ZWUtc3NhL2RpdmlkZS04LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmRjM2RjOWNhNzY5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJl ZS1zc2EvZGl2aWRlLTguYwpAQCAtMCwwICsxLDkgQEAKKy8qIFBSIHRyZWUtb3B0aW1pemF0aW9u LzEwMzg1NSAqLworLyogeyBkZy1vcHRpb25zICItTyAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQiIH0g Ki8KKwordW5zaWduZWQgaW50IGYodW5zaWduZWQgaW50IGEsIHVuc2lnbmVkIGludCBiKSB7Cisg ICAgdW5zaWduZWQgbG9uZyBsb25nIGFsbCA9IGE7CisgICAgcmV0dXJuIGFsbCAvIGI7Cit9CisK Ky8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgIlxcXChsb25nIGxvbmcgdW5zaWdu ZWQgaW50XFxcKSIgIm9wdGltaXplZCIgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy5kZy90cmVlLXNzYS9kaXZpZGUtOS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1z c2EvZGl2aWRlLTkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjk4 NmI1NDg0ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNz YS9kaXZpZGUtOS5jCkBAIC0wLDAgKzEsOSBAQAorLyogUFIgdHJlZS1vcHRpbWl6YXRpb24vMTAz ODU1ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PIC1mZHVtcC10cmVlLW9wdGltaXplZCIgfSAqLwor Cit1bnNpZ25lZCBsb25nIGxvbmcgZih1bnNpZ25lZCBpbnQgYSwgdW5zaWduZWQgaW50IGIpIHsK KyAgICB1bnNpZ25lZCBsb25nIGxvbmcgYWxsID0gYTsKKyAgICByZXR1cm4gYWxsIC8gYjsKK30K KworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJcXFwobG9uZyBsb25nIHVu c2lnbmVkIGludFxcXCkiIDEgIm9wdGltaXplZCIgfSB9ICovCi0tIAoyLjM1LjEKCg== --00000000000095324905d8935ae8--