From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 79944 invoked by alias); 7 Feb 2018 16:58:45 -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 79934 invoked by uid 89); 7 Feb 2018 16:58:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-15.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=H*r:qmail-ldap-1.03, H*r:envelope-sender, H*u:6.1, H*UA:6.1 X-HELO: smtp1.lauterbach.com Received: from smtp1.lauterbach.com (HELO smtp1.lauterbach.com) (62.154.241.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 07 Feb 2018 16:58:42 +0000 Received: (qmail 19499 invoked by uid 484); 7 Feb 2018 16:58:39 -0000 X-Qmail-Scanner-Diagnostics: from 10.2.11.10 by smtp1.lauterbach.com (envelope-from , uid 484) with qmail-scanner-2.11 (mhr: 1.0. clamdscan: 0.99/21437. spamassassin: 3.4.0. Clear:RC:1(10.2.11.10):. Processed in 0.795706 secs); 07 Feb 2018 16:58:39 -0000 Received: from unknown (HELO [10.2.11.10]) (Authenticated_SSL:fsirl@[10.2.11.10]) (envelope-sender ) by smtp1.lauterbach.com (qmail-ldap-1.03) with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP for ; 7 Feb 2018 16:58:35 -0000 To: GCC Patches From: Franz Sirl Subject: [RFC][PATCH] Stabilize a few qsort comparison functions Cc: Martin Jambor , Alexander Monakov Message-ID: <59816ffe-61ea-c887-14f7-1ff11c8574ef@lauterbach.com> Date: Wed, 07 Feb 2018 16:58:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:58.0) Gecko/20100101 Thunderbird/58.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------86E815F8B7F8668C92B570A4" X-IsSubscribed: yes X-SW-Source: 2018-02/txt/msg00331.txt.bz2 This is a multi-part message in MIME format. --------------86E815F8B7F8668C92B570A4 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 1671 Hi, this is the result of an attempt to minimize the differences between the compile results of a Linux-based and a Cygwin64-based powerpc-eabi cross toolchain. The method used was:     - find the -fverbose-asm assembler files that differ     - compile that file again on both platforms with        -O2 -g3 -fdump-tree-all-all -fdump-rtl-all -fdump-noaddr     - look for the first dump file with differences and check that pass       for qsort's     - stabilize the compare functions With some help on IRC to better understand the passes and some serious debugging of GCC I came up with this patch. On the tested codebase the differences in the assembler sources are now down to 0. If the various pass maintainers have better ideas on how to stabilize the compare functions, I'll be happy to verify them on the codebase. For the SRA patch I already have an alternate version with an additional ID member. Comments? Bootstrapped on linux-x86_64, no testsuite regressions. Franz Sirl 2018-02-07  Franz Sirl     * ira-build.c (object_range_compare_func): Stabilize sort.     * tree-sra.c (compare_access_positions): Likewise.     * varasm.c (output_object_block_compare): Likewise.     * tree-ssa-loop-ivopts.c (group_compare_offset): Likewise.     (struct iv_common_cand): New member.     (record_common_cand): Initialize new member.     (common_cand_cmp): Use new member to stabilize sort.     * tree-vrp.c (struct assert_locus): New member.     (register_new_assert_for): Initialize new member.     (compare_assert_loc): Use new member to stabilize sort. --------------86E815F8B7F8668C92B570A4 Content-Type: text/plain; charset=UTF-8; name="gcc-8-stabilize-sort-1.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gcc-8-stabilize-sort-1.diff" Content-length: 6820 SW5kZXg6IGdjYy9pcmEtYnVpbGQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnY2MvaXJhLWJ1aWxkLmMJKHJldmlzaW9uIDI1NzQzOCkKKysrIGdj Yy9pcmEtYnVpbGQuYwkod29ya2luZyBjb3B5KQpAQCAtMjc4Nyw4ICsyNzg3 LDEwIEBAIG9iamVjdF9yYW5nZV9jb21wYXJlX2Z1bmMgKGNvbnN0IHZvaWQg KnYxcCwgY29uc3QKICAgaWYgKChkaWZmID0gT0JKRUNUX01JTiAob2JqMSkg LSBPQkpFQ1RfTUlOIChvYmoyKSkgIT0gMCkKICAgICByZXR1cm4gZGlmZjsK ICAgaWYgKChkaWZmID0gT0JKRUNUX01BWCAob2JqMSkgLSBPQkpFQ1RfTUFY IChvYmoyKSkgIT0gMCkKLSAgICAgcmV0dXJuIGRpZmY7Ci0gIHJldHVybiBB TExPQ05PX05VTSAoYTEpIC0gQUxMT0NOT19OVU0gKGEyKTsKKyAgICByZXR1 cm4gZGlmZjsKKyAgaWYgKChkaWZmID0gQUxMT0NOT19OVU0gKGExKSAtIEFM TE9DTk9fTlVNIChhMikpICE9IDApCisgICAgcmV0dXJuIGRpZmY7CisgIHJl dHVybiBPQkpFQ1RfU1VCV09SRCAob2JqMSkgLSBPQkpFQ1RfU1VCV09SRCAo b2JqMik7CiB9CiAKIC8qIFNvcnQgaXJhX29iamVjdF9pZF9tYXAgYW5kIHNl dCB1cCBjb25mbGljdCBpZCBvZiBhbGxvY25vcy4gICovCkluZGV4OiBnY2Mv dHJlZS1zcmEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvdHJl ZS1zcmEuYwkocmV2aXNpb24gMjU3NDM4KQorKysgZ2NjL3RyZWUtc3JhLmMJ KHdvcmtpbmcgY29weSkKQEAgLTE1NjcsNyArMTU2NywxMyBAQCBjb21wYXJl X2FjY2Vzc19wb3NpdGlvbnMgKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaQog ICBpZiAoZjEtPnNpemUgPT0gZjItPnNpemUpCiAgICAgewogICAgICAgaWYg KGYxLT50eXBlID09IGYyLT50eXBlKQotCXJldHVybiAwOworCXsKKwkgIGlm IChmMS0+c3RtdCA9PSBmMi0+c3RtdCkKKwkgICAgcmV0dXJuIDA7CisJICBp ZiAoZjEtPnN0bXQgJiYgZjItPnN0bXQpCisJICAgIHJldHVybiBnaW1wbGVf dWlkIChmMS0+c3RtdCkgLSBnaW1wbGVfdWlkIChmMi0+c3RtdCk7CisJICBy ZXR1cm4gZjEtPnN0bXQgPyAtMSA6IDE7CisJfQogICAgICAgLyogUHV0IGFu eSBub24tYWdncmVnYXRlIHR5cGUgYmVmb3JlIGFueSBhZ2dyZWdhdGUgdHlw ZS4gICovCiAgICAgICBlbHNlIGlmICghaXNfZ2ltcGxlX3JlZ190eXBlIChm MS0+dHlwZSkKIAkgICYmIGlzX2dpbXBsZV9yZWdfdHlwZSAoZjItPnR5cGUp KQpJbmRleDogZ2NjL3RyZWUtc3NhLWxvb3AtaXZvcHRzLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjL3RyZWUtc3NhLWxvb3AtaXZvcHRzLmMJ KHJldmlzaW9uIDI1NzQzOCkKKysrIGdjYy90cmVlLXNzYS1sb29wLWl2b3B0 cy5jCSh3b3JraW5nIGNvcHkpCkBAIC00NDMsNiArNDQzLDcgQEAgc3RydWN0 IGl2X2NvbW1vbl9jYW5kCiAgIC8qIElWIHVzZXMgZnJvbSB3aGljaCB0aGlz IGNvbW1vbiBjYW5kaWRhdGUgaXMgZGVyaXZlZC4gICovCiAgIGF1dG9fdmVj PHN0cnVjdCBpdl91c2UgKj4gdXNlczsKICAgaGFzaHZhbF90IGhhc2g7Cisg IHVuc2lnbmVkIGlkOwogfTsKIAogLyogSGFzaHRhYmxlIGhlbHBlcnMuICAq LwpAQCAtMjYxNyw4ICsyNjE4LDExIEBAIGdyb3VwX2NvbXBhcmVfb2Zmc2V0 IChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiCiB7CiAgIGNvbnN0IHN0 cnVjdCBpdl91c2UgKmNvbnN0ICp1MSA9IChjb25zdCBzdHJ1Y3QgaXZfdXNl ICpjb25zdCAqKSBhOwogICBjb25zdCBzdHJ1Y3QgaXZfdXNlICpjb25zdCAq dTIgPSAoY29uc3Qgc3RydWN0IGl2X3VzZSAqY29uc3QgKikgYjsKKyAgaW50 IGRpZmY7CiAKLSAgcmV0dXJuIGNvbXBhcmVfc2l6ZXNfZm9yX3NvcnQgKCgq dTEpLT5hZGRyX29mZnNldCwgKCp1MiktPmFkZHJfb2Zmc2V0KTsKKyAgaWYg KChkaWZmID0gY29tcGFyZV9zaXplc19mb3Jfc29ydCAoKCp1MSktPmFkZHJf b2Zmc2V0LCAoKnUyKS0+YWRkcl9vZmZzZXQpKSAhPSAwKQorICAgIHJldHVy biBkaWZmOworICByZXR1cm4gKCp1MSktPmlkIC0gKCp1MiktPmlkOwogfQog CiAvKiBDaGVjayBpZiBzbWFsbCBncm91cHMgc2hvdWxkIGJlIHNwbGl0LiAg UmV0dXJuIHRydWUgaWYgbm8gZ3JvdXAKQEAgLTMzNzgsNiArMzM4Miw3IEBA IHJlY29yZF9jb21tb25fY2FuZCAoc3RydWN0IGl2b3B0c19kYXRhICpkYXRh LCB0cmVlCiAgIHN0cnVjdCBpdl9jb21tb25fY2FuZCBlbnQ7CiAgIHN0cnVj dCBpdl9jb21tb25fY2FuZCAqKnNsb3Q7CiAKKyAgZW50LmlkID0gZGF0YS0+ aXZfY29tbW9uX2NhbmRzLmxlbmd0aCAoKTsKICAgZW50LmJhc2UgPSBiYXNl OwogICBlbnQuc3RlcCA9IHN0ZXA7CiAgIGVudC5oYXNoID0gaXRlcmF0aXZl X2hhc2hfZXhwciAoYmFzZSwgMCk7CkBAIC0zMzg3LDYgKzMzOTIsNyBAQCBy ZWNvcmRfY29tbW9uX2NhbmQgKHN0cnVjdCBpdm9wdHNfZGF0YSAqZGF0YSwg dHJlZQogICBpZiAoKnNsb3QgPT0gTlVMTCkKICAgICB7CiAgICAgICAqc2xv dCA9IG5ldyBpdl9jb21tb25fY2FuZCAoKTsKKyAgICAgICgqc2xvdCktPmlk ID0gZW50LmlkOwogICAgICAgKCpzbG90KS0+YmFzZSA9IGJhc2U7CiAgICAg ICAoKnNsb3QpLT5zdGVwID0gc3RlcDsKICAgICAgICgqc2xvdCktPnVzZXMu Y3JlYXRlICg4KTsKQEAgLTM0MTIsNiArMzQxOCw4IEBAIGNvbW1vbl9jYW5k X2NtcCAoY29uc3Qgdm9pZCAqcDEsIGNvbnN0IHZvaWQgKnAyKQogCiAgIG4x ID0gKCpjY2FuZDEpLT51c2VzLmxlbmd0aCAoKTsKICAgbjIgPSAoKmNjYW5k MiktPnVzZXMubGVuZ3RoICgpOworICBpZiAobjEgPT0gbjIpCisgICAgcmV0 dXJuICgqY2NhbmQxKS0+aWQgLSAoKmNjYW5kMiktPmlkOwogICByZXR1cm4g bjIgLSBuMTsKIH0KIApJbmRleDogZ2NjL3RyZWUtdnJwLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjL3RyZWUtdnJwLmMJKHJldmlzaW9uIDI1 NzQzOCkKKysrIGdjYy90cmVlLXZycC5jCSh3b3JraW5nIGNvcHkpCkBAIC0x MDEsNiArMTAxLDggQEAgc3RydWN0IGFzc2VydF9sb2N1cwogICAvKiBQcmVk aWNhdGUgY29kZSBmb3IgdGhlIEFTU0VSVF9FWFBSLiAgTXVzdCBiZSBDT01Q QVJJU09OX0NMQVNTX1AuICAqLwogICBlbnVtIHRyZWVfY29kZSBjb21wX2Nv ZGU7CiAKKyAgdW5zaWduZWQgaWQ7CisKICAgLyogVmFsdWUgYmVpbmcgY29t cGFyZWQgYWdhaW5zdC4gICovCiAgIHRyZWUgdmFsOwogCkBAIC0yODE0LDYg KzI4MTYsNyBAQCByZWdpc3Rlcl9uZXdfYXNzZXJ0X2ZvciAodHJlZSBuYW1l LCB0cmVlIGV4cHIsCiB7CiAgIGFzc2VydF9sb2N1cyAqbiwgKmxvYywgKmxh c3RfbG9jOwogICBiYXNpY19ibG9jayBkZXN0X2JiOworICB1bnNpZ25lZCBj bnQgPSAwOwogCiAgIGdjY19jaGVja2luZ19hc3NlcnQgKGJiID09IE5VTEwg fHwgZSA9PSBOVUxMKTsKIApAQCAtMjg4Miw2ICsyODg1LDcgQEAgcmVnaXN0 ZXJfbmV3X2Fzc2VydF9mb3IgKHRyZWUgbmFtZSwgdHJlZSBleHByLAogICAg ICAgLyogVXBkYXRlIHRoZSBsYXN0IG5vZGUgb2YgdGhlIGxpc3QgYW5kIG1v dmUgdG8gdGhlIG5leHQgb25lLiAgKi8KICAgICAgIGxhc3RfbG9jID0gbG9j OwogICAgICAgbG9jID0gbG9jLT5uZXh0OworICAgICAgY250Kys7CiAgICAg fQogCiAgIC8qIElmIHdlIGRpZG4ndCBmaW5kIGFuIGFzc2VydGlvbiBhbHJl YWR5IHJlZ2lzdGVyZWQgZm9yCkBAIC0yODk1LDYgKzI4OTksNyBAQCByZWdp c3Rlcl9uZXdfYXNzZXJ0X2ZvciAodHJlZSBuYW1lLCB0cmVlIGV4cHIsCiAg IG4tPnZhbCA9IHZhbDsKICAgbi0+ZXhwciA9IGV4cHI7CiAgIG4tPm5leHQg PSBOVUxMOworICBuLT5pZCA9IGNudDsKIAogICBpZiAobGFzdF9sb2MpCiAg ICAgbGFzdF9sb2MtPm5leHQgPSBuOwpAQCAtNDU5MSw5ICs0NTk2LDE1IEBA IGNvbXBhcmVfYXNzZXJ0X2xvYyAoY29uc3Qgdm9pZCAqcGEsIGNvbnN0IHZv aWQgKnBiCiAKICAgLyogQnJlYWsgdGhlIHRpZSB1c2luZyBoYXNoaW5nIGFu ZCBzb3VyY2UvYmIgaW5kZXguICAqLwogICBpZiAoaGEgPT0gaGIpCi0gICAg cmV0dXJuIChhLT5lICE9IE5VTEwKLQkgICAgPyBhLT5lLT5zcmMtPmluZGV4 IC0gYi0+ZS0+c3JjLT5pbmRleAotCSAgICA6IGEtPmJiLT5pbmRleCAtIGIt PmJiLT5pbmRleCk7CisgICAgeworICAgICAgaWYgKGEtPmUgIT0gTlVMTCkK Kwl7CisJICBpZiAoYS0+ZSA9PSBiLT5lKQorCSAgICByZXR1cm4gYS0+aWQg LSBiLT5pZDsKKwkgIHJldHVybiBhLT5lLT5zcmMtPmluZGV4IC0gYi0+ZS0+ c3JjLT5pbmRleDsKKwl9CisgICAgICByZXR1cm4gYS0+YmItPmluZGV4IC0g Yi0+YmItPmluZGV4OworICAgIH0KICAgcmV0dXJuIGhhID4gaGIgPyAxIDog LTE7CiB9CiAKSW5kZXg6IGdjYy92YXJhc20uYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBnY2MvdmFyYXNtLmMJKHJldmlzaW9uIDI1NzQzOCkKKysr IGdjYy92YXJhc20uYwkod29ya2luZyBjb3B5KQpAQCAtNzYzMiw3ICs3NjMy LDExIEBAIG91dHB1dF9vYmplY3RfYmxvY2tfY29tcGFyZSAoY29uc3Qgdm9p ZCAqeCwgY29uc3QKICAgdW5zaWduZWQgZjEgPSBwMS0+c2VjdC0+Y29tbW9u LmZsYWdzOwogICB1bnNpZ25lZCBmMiA9IHAyLT5zZWN0LT5jb21tb24uZmxh Z3M7CiAgIGlmIChmMSA9PSBmMikKLSAgICByZXR1cm4gMDsKKyAgICB7Cisg ICAgICBpZiAocDEtPmFuY2hvcnMgJiYgcDItPmFuY2hvcnMpCisJcmV0dXJu IHN0cmNtcCAoWFNUUiAoKCpwMS0+YW5jaG9ycylbMF0sIDApLCBYU1RSICgo KnAyLT5hbmNob3JzKVswXSwgMCkpOworICAgICAgcmV0dXJuIDA7CisgICAg fQogICByZXR1cm4gZjEgPCBmMiA/IC0xIDogMTsKIH0KIAo= --------------86E815F8B7F8668C92B570A4--