From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 49556 invoked by alias); 30 May 2015 04:41:39 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 49544 invoked by uid 89); 30 May 2015 04:41:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Sat, 30 May 2015 04:41:38 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 2D7C53674C5 for ; Sat, 30 May 2015 04:41:37 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-36.phx2.redhat.com [10.3.113.36]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t4U4faQI005612 for ; Sat, 30 May 2015 00:41:36 -0400 Message-ID: <55693F80.9070805@redhat.com> Date: Sat, 30 May 2015 05:02:00 -0000 From: Jeff Law User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: gcc-patches Subject: [RFA] Reimplement canonicalization of comparison arguments in match.pd Content-Type: multipart/mixed; boundary="------------030805090302050905000103" X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg02841.txt.bz2 This is a multi-part message in MIME format. --------------030805090302050905000103 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1049 c-common.c::shorten_compare has code to canonicalize the arguments of a comparison so that the constant is the second argument. This patch removes the implementation from c-common.c and instead implements it in match.pd. Note the match.pd tries to match the prior behavior of shorten_compare, hence the strange handling of zero. No justification exists AFAIK for that strange handling in shorten_compare. The match.pd pattern is primarily Kai's -- I just took the 4 patterns he wrote and squashed them into a single pattern to avoid the test duplication. The xfailed testcase is only case I saw across my comparison tests where this change regressed. Basically shorten-compare had something non-canonical when called. It was able to canonicalize, then optimize the result. I just wanted a record of that test in the testsuite. Obviously if we hit our goal of implementing everything from shorten_compare, that test will no longer need to be xfailed :-) Bootstrapped and regression tested on x86-linux-gnu. OK for the trunk? --------------030805090302050905000103 Content-Type: text/plain; charset=UTF-8; name="patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch" Content-length: 4551 CSogYy1jb21tb24uYyAoc2hvcnRlbl9jb21wYXJlKTogUmVtb3ZlIGNvZGUg dG8gc3dhcCBhcmd1bWVudHMKCWlmIHRoZSBmaXJzdCBpcyBhIGNvbnN0YW50 IGFuZCB0aGUgc2Vjb25kIGlzIG5vdCB6ZXJvLgoJKiBtYXRjaC5tZDogQWRk IHBhdHRlcm5zIHRvIGNhbm9uaWNhbGl6ZSBjb21wYXJpc29ucyBzbyB0aGF0 IHRoZQoJY29uc3RhbnQgYXJndW1lbnQgaXMgc2Vjb25kLgoKCSogc2hvcnQt Y29tcGFyZS0zLmM6IE5ldyB0ZXN0LCBjdXJyZW50bHkgeGZhaWxlZC4KCmtr awpkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2MtY29tbW9uLmMgYi9nY2Mv Yy1mYW1pbHkvYy1jb21tb24uYwppbmRleCAzNmM5ODRjLi44YmE0ZjEzIDEw MDY0NAotLS0gYS9nY2MvYy1mYW1pbHkvYy1jb21tb24uYworKysgYi9nY2Mv Yy1mYW1pbHkvYy1jb21tb24uYwpAQCAtNDM2NCw0MSArNDM2NCw2IEBAIHNo b3J0ZW5fY29tcGFyZSAobG9jYXRpb25fdCBsb2MsIHRyZWUgKm9wMF9wdHIs IHRyZWUgKm9wMV9wdHIsCiAgIHJlYWwxID0gVFJFRV9DT0RFIChUUkVFX1RZ UEUgKHByaW1vcDApKSA9PSBSRUFMX1RZUEU7CiAgIHJlYWwyID0gVFJFRV9D T0RFIChUUkVFX1RZUEUgKHByaW1vcDEpKSA9PSBSRUFMX1RZUEU7CiAKLSAg LyogSWYgZmlyc3QgYXJnIGlzIGNvbnN0YW50LCBzd2FwIHRoZSBhcmdzIChj aGFuZ2luZyBvcGVyYXRpb24KLSAgICAgc28gdmFsdWUgaXMgcHJlc2VydmVk KSwgZm9yIGNhbm9uaWNhbGl6YXRpb24uICBEb24ndCBkbyB0aGlzIGlmCi0g ICAgIHRoZSBzZWNvbmQgYXJnIGlzIDAuICAqLwotCi0gIGlmIChUUkVFX0NP TlNUQU5UIChwcmltb3AwKQotICAgICAgJiYgIWludGVnZXJfemVyb3AgKHBy aW1vcDEpICYmICFyZWFsX3plcm9wIChwcmltb3AxKQotICAgICAgJiYgIWZp eGVkX3plcm9wIChwcmltb3AxKSkKLSAgICB7Ci0gICAgICBzdGQ6OnN3YXAg KHByaW1vcDAsIHByaW1vcDEpOwotICAgICAgc3RkOjpzd2FwIChvcDAsIG9w MSk7Ci0gICAgICAqb3AwX3B0ciA9IG9wMDsKLSAgICAgICpvcDFfcHRyID0g b3AxOwotICAgICAgc3RkOjpzd2FwICh1bnNpZ25lZHAwLCB1bnNpZ25lZHAx KTsKLSAgICAgIHN0ZDo6c3dhcCAocmVhbDEsIHJlYWwyKTsKLQotICAgICAg c3dpdGNoIChjb2RlKQotCXsKLQljYXNlIExUX0VYUFI6Ci0JICBjb2RlID0g R1RfRVhQUjsKLQkgIGJyZWFrOwotCWNhc2UgR1RfRVhQUjoKLQkgIGNvZGUg PSBMVF9FWFBSOwotCSAgYnJlYWs7Ci0JY2FzZSBMRV9FWFBSOgotCSAgY29k ZSA9IEdFX0VYUFI7Ci0JICBicmVhazsKLQljYXNlIEdFX0VYUFI6Ci0JICBj b2RlID0gTEVfRVhQUjsKLQkgIGJyZWFrOwotCWRlZmF1bHQ6Ci0JICBicmVh azsKLQl9Ci0gICAgICAqcmVzY29kZV9wdHIgPSBjb2RlOwotICAgIH0KLQog ICAvKiBJZiBjb21wYXJpbmcgYW4gaW50ZWdlciBhZ2FpbnN0IGEgY29uc3Rh bnQgbW9yZSBiaXRzIHdpZGUsCiAgICAgIG1heWJlIHdlIGNhbiBkZWR1Y2Ug YSB2YWx1ZSBvZiAxIG9yIDAgaW5kZXBlbmRlbnQgb2YgdGhlIGRhdGEuCiAg ICAgIE9yIGVsc2UgdHJ1bmNhdGUgdGhlIGNvbnN0YW50IG5vdwpkaWZmIC0t Z2l0IGEvZ2NjL21hdGNoLnBkIGIvZ2NjL21hdGNoLnBkCmluZGV4IGJmNGRh NjEuLjFmNmRiZmUgMTAwNjQ0Ci0tLSBhL2djYy9tYXRjaC5wZAorKysgYi9n Y2MvbWF0Y2gucGQKQEAgLTExODIsNiArMTE4MiwyNSBAQCBhbG9uZyB3aXRo IEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogCShj b252ZXJ0IChiaXRfYW5kIChvcCAoY29udmVydDp1dHlwZSBAMCkgKGNvbnZl cnQ6dXR5cGUgQDEpKQogCQkJICAoY29udmVydDp1dHlwZSBANCkpKSkpKSkK IAorLyogVGhpcyBwYXR0ZXJuIGNhbm9uaWNhbGl6ZXMgY29tcGFyaXNvbnMg c28gdGhlIGNvbnN0YW50IG9wZXJhbmQKKyAgIGlzIHNlY29uZCwgdW5sZXNz IHRoZSBjb25zdGFudCBvcGVyYW5kIGlzIHplcm8uCisKKyAgIFRoaXMgbWly cm9ycyB0aGUgcHJpb3IgYmVoYXZpb3VyIG9mIHNob3J0ZW5fY29tcGFyaXNv bi4gIFRoZXJlIHdhc24ndAorICAgYW55IGp1c3RpZmljYXRpb24gZm9yIHRo ZSBzcGVjaWFsIGhhbmRsaW5nIG9mIHplcm8gaW4KKyAgIHNob3J0ZW5fY29t cGFyaXNvbi4gICovCisoZm9yIG9wIChsdCBndCBsZSBnZSkKKyAgKHNpbXBs aWZ5CisgICAgKG9wIENPTlNUQU5UX0NMQVNTX1BAMCBAMSkKKyAgICAoaWYg KCFpbnRlZ2VyX3plcm9wIChAMSkgJiYgIXJlYWxfemVyb3AgKEAxKSAmJiAh Zml4ZWRfemVyb3AgKEAxKQorICAgICAgICAgJiYgKFRSRUVfQ09ERSAoVFJF RV9UWVBFIChAMCkpICE9IFJFQUxfVFlQRQorICAgICAgICAgICAgIHx8ICFE RUNJTUFMX0ZMT0FUX01PREVfUCAoVFlQRV9NT0RFIChUUkVFX1RZUEUgKEAw KSkpKQorICAgICAgICAgJiYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChAMSkp ICE9IFJFQUxfVFlQRQorICAgICAgICAgICAgfHwgIURFQ0lNQUxfRkxPQVRf TU9ERV9QIChUWVBFX01PREUgKFRSRUVfVFlQRSAoQDEpKSkpKQorICAgICAg KGlmIChvcCA9PSBMVF9FWFBSKSAoZ3QgQDEgQDApKQorICAgICAgKGlmIChv cCA9PSBHVF9FWFBSKSAobHQgQDEgQDApKQorICAgICAgKGlmIChvcCA9PSBM RV9FWFBSKSAoZ2UgQDEgQDApKQorICAgICAgKGlmIChvcCA9PSBHRV9FWFBS KSAobGUgQDEgQDApKSkpKQorCiAvKiBmb2xkLWNvbnN0IGhhcyBhIHJpY2gg c2V0IG9mIG9wdGltaXphdGlvbnMgZm9yIGV4cHJlc3Npb25zIG9mIHRoZQog ICAgZm9ybSBBIG9wIEIgPyBBIDogQi4gICBIb3dldmVyLCB0aG9zZSBvcHRp bWl6YXRpb25zIGNhbiBiZSBlYXNpbHkKICAgIGNvbmZ1c2VkIGJ5IHR5cGVj YXN0aW5nLCBwYXJ0aWN1bGFybHkgaW4gdGhlIHRydWUvZmFsc2UgYXJtcyBv ZiB0aGUKLS0tIC9kZXYvbnVsbAkyMDE1LTA1LTIwIDE2OjQ4OjQ5LjQzODQ4 OTg2OSAtMDYwMAorKysgdGVzdHN1aXRlL2djYy5kZy9zaG9ydC1jb21wYXJl LTMuYwkyMDE1LTA1LTI5IDIyOjI4OjUwLjkzMTgzNjY3MyAtMDYwMApAQCAt MCwwICsxLDE1IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBk Zy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUtb3JpZ2luYWwiIH0gKi8KKwor ZXh0ZXJuIHVuc2lnbmVkIHNob3J0IG1vZGVfc2l6ZVtdOwordm9pZCBvb2Yg KHZvaWQpOwordm9pZAorZnUgKCkKK3sKKyAgaWYgKDY0ID49IG1vZGVfc2l6 ZVs0Ml0pCisgICAgb29mICgpOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgIlwoaW50XCkiIDAgIm9yaWdpbmFsIiB7eGZh aWwgKi0qLSp9fSB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVl LWR1bXAgIm9yaWdpbmFsIiB9IH0gKi8KKwo= --------------030805090302050905000103--