From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 77412 invoked by alias); 2 Nov 2015 23:25:24 -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 77389 invoked by uid 89); 2 Nov 2015 23:25:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham 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; Mon, 02 Nov 2015 23:25:22 +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 7EB478C1B6 for ; Mon, 2 Nov 2015 23:25:21 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-134.phx2.redhat.com [10.3.113.134]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tA2NPLOT010000 for ; Mon, 2 Nov 2015 18:25:21 -0500 To: gcc-patches@gcc.gnu.org From: Jeff Law Subject: [PATCH] Avoid more irreducible loops in FSM threader Message-ID: <5637F0E0.6050204@redhat.com> Date: Mon, 02 Nov 2015 23:25:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070500060203020809000703" X-IsSubscribed: yes X-SW-Source: 2015-11/txt/msg00140.txt.bz2 This is a multi-part message in MIME format. --------------070500060203020809000703 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 679 This moves the check for threading through the loop latch to a point where we check it on every edge in the jump threading path. Thus catching cases where the loop latch is in the middle of the path. This was spotted during analysis of Andreas's report that one of the new tests was failing on m68k crosses. The initial naive implementation wouldn't allow us to thread through the latch then to a loop exit. Thankfully the test suite caught that case and complained :-) There's some chance this will improve the codesize issues, but it's not explicitly targeting those issues. Bootstrapped and regression tested on x86_64-linux-gnu. Installed on the trunk. Jeff --------------070500060203020809000703 Content-Type: text/plain; charset=UTF-8; name="patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch" Content-length: 5694 Y29tbWl0IDU5YzQ0YTIzNDg3M2ZjMmNhZDgxNjE1M2YxNDQ0NGFjZWIwMWU0 ZjgKQXV0aG9yOiBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CkRhdGU6ICAg TW9uIE5vdiAyIDE2OjIzOjAyIDIwMTUgLTA3MDAKCiAgICBbUEFUQ0hdIEF2 b2lkIG1vcmUgaXJyZWR1Y2libGUgbG9vcHMgaW4gRlNNIHRocmVhZGVyCiAg ICAKICAgIAkqIHRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jICh2YWxpZF9qdW1w X3RocmVhZF9wYXRoKTogQWxzbyBkZXRlY3QKICAgIAljYXNlcyB3aGVyZSB0 aGUgbG9vcCBsYXRjaCBlZGdlIGlzIGluIHRoZSBtaWRkbGUgb2YgYW4gRlNN CiAgICAJcGF0aC4KICAgIAogICAgCSogZ2NjLmRnL3RyZWUtc3NhL3NzYS10 aHJlYWQtMTEuYzogVmVyaWZ5IHRoYXQgd2UgZG8gbm90IGhhdmUKICAgIAlp cnJlZHVjaWJsZSBsb29wcyBpbiB0aGUgQ0ZHLgoKZGlmZiAtLWdpdCBhL2dj Yy9DaGFuZ2VMb2cgYi9nY2MvQ2hhbmdlTG9nCmluZGV4IDM2MTNhNjguLjZh N2Q5ODggMTAwNjQ0Ci0tLSBhL2djYy9DaGFuZ2VMb2cKKysrIGIvZ2NjL0No YW5nZUxvZwpAQCAtMSwzICsxLDkgQEAKKzIwMTUtMTEtMDIgIEplZmYgTGF3 IDxqZWZmQHJlZGhhdC5jb20+CisKKwkqIHRyZWUtc3NhLXRocmVhZHVwZGF0 ZS5jICh2YWxpZF9qdW1wX3RocmVhZF9wYXRoKTogQWxzbyBkZXRlY3QKKwlj YXNlcyB3aGVyZSB0aGUgbG9vcCBsYXRjaCBlZGdlIGlzIGluIHRoZSBtaWRk bGUgb2YgYW4gRlNNCisJcGF0aC4KKwogMjAxNS0xMS0wMyAgVG9tIGRlIFZy aWVzICA8dG9tQGNvZGVzb3VyY2VyeS5jb20+CiAKIAkqIHRyZWUtc3NhLXN0 cnVjdGFsaWFzLmMgKG1ha2VfcmVzdHJpY3RfdmFyX2NvbnN0cmFpbnRzKTog UmVuYW1lIHRvIC4uLgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9DaGFu Z2VMb2cgYi9nY2MvdGVzdHN1aXRlL0NoYW5nZUxvZwppbmRleCBhODY5MjBh Li4zZGM0ZWRjIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZworKysgYi9nY2MvdGVzdHN1aXRlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgg QEAKKzIwMTUtMTEtMDIgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CisK KwkqIGdjYy5kZy90cmVlLXNzYS9zc2EtdGhyZWFkLTExLmM6IFZlcmlmeSB0 aGF0IHdlIGRvIG5vdCBoYXZlCisJaXJyZWR1Y2libGUgbG9vcHMgaW4gdGhl IENGRy4KKwogMjAxNS0xMS0wMiAgQWxhbiBMYXdyZW5jZSAgPGFsYW4ubGF3 cmVuY2VAYXJtLmNvbT4KIAogCVJldmVydDoKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3NzYS10aHJlYWQtMTEuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3NzYS10aHJlYWQtMTEuYwpp bmRleCA2YTA3NmUxLi5hNzI5ZjU2IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy5kZy90cmVlLXNzYS9zc2EtdGhyZWFkLTExLmMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Evc3NhLXRocmVhZC0xMS5jCkBA IC0xLDUgKzEsNiBAQAogLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsg ISB7IGxvZ2ljYWxfb3Bfc2hvcnRfY2lyY3VpdCB8fCB7IG02OGsqLSotKiBt ZXAqLSotKiBiZmluKi0qLSogdjg1MCotKi0qIG1veGllKi0qLSogbTMyYyot Ki0qIGZyMzAqLSotKiBtY29yZSotKi0qIGZydi0qLSogaDgzMDAtKi0qIG0z MnItKi0qIG1uMTAzMDAtKi0qIG1zcDQzMC0qLSogcGRwMTEtKi0qIHJsNzgt Ki0qIHJ4LSotKiB2YXgtKi0qfSB9IH0gfSB9ICovCiAvKiB7IGRnLW9wdGlv bnMgIi1PMiAtZmR1bXAtdHJlZS12cnAyLWRldGFpbHMiIH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgIklSUkVEVUNJQkxFX0xP T1AiICJ2cnAyIiB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAiRlNNIiAidnJwMiIgfSB9ICovCiAKIHZvaWQgYWJvcnQgKHZvaWQp OwpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc3NhLXRocmVhZHVwZGF0ZS5jIGIv Z2NjL3RyZWUtc3NhLXRocmVhZHVwZGF0ZS5jCmluZGV4IDUxMTQzM2EuLjY4 NjUwZTUgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXNzYS10aHJlYWR1cGRhdGUu YworKysgYi9nY2MvdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMKQEAgLTI1NDcs MjkgKzI1NDcsMzggQEAgdmFsaWRfanVtcF90aHJlYWRfcGF0aCAodmVjPGp1 bXBfdGhyZWFkX2VkZ2UgKj4gKnBhdGgpCiB7CiAgIHVuc2lnbmVkIGxlbiA9 IHBhdGgtPmxlbmd0aCAoKTsKICAgYm9vbCBtdWx0aXdheV9icmFuY2ggPSBm YWxzZTsKKyAgYm9vbCB0aHJlYWRlZF90aHJvdWdoX2xhdGNoID0gZmFsc2U7 CiAKICAgLyogQ2hlY2sgdGhhdCB0aGUgcGF0aCBpcyBjb25uZWN0ZWQgYW5k IHNlZSBpZiB0aGVyZSdzIGEgbXVsdGktd2F5CiAgICAgIGJyYW5jaCBvbiB0 aGUgcGF0aC4gICovCiAgIGZvciAodW5zaWduZWQgaW50IGogPSAwOyBqIDwg bGVuIC0gMTsgaisrKQogICAgIHsKLSAgICAgIGlmICgoKnBhdGgpW2pdLT5l LT5kZXN0ICE9ICgqcGF0aClbaisxXS0+ZS0+c3JjKQorICAgICAgZWRnZSBl ID0gKCpwYXRoKVtqXS0+ZTsKKyAgICAgIHN0cnVjdCBsb29wICpsb29wID0g ZS0+ZGVzdC0+bG9vcF9mYXRoZXI7CisKKyAgICAgIGlmIChlLT5kZXN0ICE9 ICgqcGF0aClbaisxXS0+ZS0+c3JjKQogICAgICAgICByZXR1cm4gZmFsc2U7 Ci0gICAgICBnaW1wbGUgKmxhc3QgPSBsYXN0X3N0bXQgKCgqcGF0aClbal0t PmUtPmRlc3QpOworCisgICAgICAvKiBJZiB3ZSdyZSB0aHJlYWRpbmcgdGhy b3VnaCB0aGUgbG9vcCBsYXRjaCBiYWNrIGludG8gdGhlCisJIHNhbWUgbG9v cCBhbmQgdGhlIGRlc3RpbmF0aW9uIGRvZXMgbm90IGRvbWluYXRlIHRoZSBs b29wCisJIGxhdGNoLCB0aGVuIHRoaXMgdGhyZWFkIHdvdWxkIGNyZWF0ZSBh biBpcnJlZHVjaWJsZSBsb29wLiAgKi8KKyAgICAgIGlmIChsb29wLT5sYXRj aAorCSAgJiYgbG9vcF9sYXRjaF9lZGdlIChsb29wKSA9PSBlCisJICAmJiBs b29wID09IHBhdGgtPmxhc3QoKS0+ZS0+ZGVzdC0+bG9vcF9mYXRoZXIKKwkg ICYmIChkZXRlcm1pbmVfYmJfZG9taW5hdGlvbl9zdGF0dXMgKGxvb3AsIHBh dGgtPmxhc3QgKCktPmUtPmRlc3QpCisJICAgICAgID09IERPTVNUX05PTkRP TUlOQVRJTkcpKQorCXRocmVhZGVkX3Rocm91Z2hfbGF0Y2ggPSB0cnVlOwor CisgICAgICBnaW1wbGUgKmxhc3QgPSBsYXN0X3N0bXQgKGUtPmRlc3QpOwog ICAgICAgbXVsdGl3YXlfYnJhbmNoIHw9IChsYXN0ICYmIGdpbXBsZV9jb2Rl IChsYXN0KSA9PSBHSU1QTEVfU1dJVENIKTsKICAgICB9CiAKLSAgLyogSWYg d2UgYXJlIHRyeWluZyB0byB0aHJlYWQgdGhlIGxvb3AgbGF0Y2ggdG8gYSBi bG9jayB0aGF0IGRvZXMKLSAgICAgbm90IGRvbWluYXRlIHRoZSBsb29wIGxh dGNoLCB0aGVuIHRoYXQgd2lsbCBjcmVhdGUgYW4gaXJyZWR1Y2libGUKLSAg ICAgbG9vcC4gIFdlIGF2b2lkIHRoYXQgdW5sZXNzIHRoZSBqdW1wIHRocmVh ZCBoYXMgYSBtdWx0aS13YXkKKyAgLyogSWYgd2UgYXJlIHRyeWluZyB0byB0 aHJlYWQgdGhyb3VnaCB0aGUgbG9vcCBsYXRjaCB0byBhIGJsb2NrIGluIHRo ZQorICAgICBsb29wIHRoYXQgZG9lcyBub3QgZG9taW5hdGUgdGhlIGxvb3Ag bGF0Y2gsIHRoZW4gdGhhdCB3aWxsIGNyZWF0ZSBhbgorICAgICBpcnJlZHVj aWJsZSBsb29wLiAgV2UgYXZvaWQgdGhhdCB1bmxlc3MgdGhlIGp1bXAgdGhy ZWFkIGhhcyBhIG11bHRpLXdheQogICAgICBicmFuY2gsIGluIHdoaWNoIGNh c2Ugd2UgaGF2ZSBkZWVtZWQgaXQgd29ydGggbG9zaW5nIG90aGVyCiAgICAg IGxvb3Agb3B0aW1pemF0aW9ucyBsYXRlciBpZiB3ZSBjYW4gZWxpbWluYXRl IHRoZSBtdWx0aS13YXkgYnJhbmNoLiAgKi8KLSAgZWRnZSBlID0gKCpwYXRo KVswXS0+ZTsKLSAgc3RydWN0IGxvb3AgKmxvb3AgPSBlLT5kZXN0LT5sb29w X2ZhdGhlcjsKLSAgaWYgKCFtdWx0aXdheV9icmFuY2gKLSAgICAgICYmIGxv b3AtPmxhdGNoCi0gICAgICAmJiBsb29wX2xhdGNoX2VkZ2UgKGxvb3ApID09 IGUKLSAgICAgICYmIChkZXRlcm1pbmVfYmJfZG9taW5hdGlvbl9zdGF0dXMg KGxvb3AsIHBhdGgtPmxhc3QgKCktPmUtPmRlc3QpCi0JICA9PSBET01TVF9O T05ET01JTkFUSU5HKSkKKyAgaWYgKCFtdWx0aXdheV9icmFuY2ggJiYgdGhy ZWFkZWRfdGhyb3VnaF9sYXRjaCkKICAgICByZXR1cm4gZmFsc2U7CiAKICAg cmV0dXJuIHRydWU7Cg== --------------070500060203020809000703--