From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91337 invoked by alias); 12 Oct 2015 16:26:58 -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 91309 invoked by uid 89); 12 Oct 2015 16:26:57 -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, 12 Oct 2015 16:26:56 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 385363DD42 for ; Mon, 12 Oct 2015 16:26:55 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-105.phx2.redhat.com [10.3.113.105]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9CGQsfW030442 for ; Mon, 12 Oct 2015 12:26:55 -0400 From: Jeff Law Subject: [PATCH] Improve FSM threader to handle compiler temporaries too To: gcc-patches Message-ID: <561BDF4E.6020600@redhat.com> Date: Mon, 12 Oct 2015 16:26:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020602080007080007040902" X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg01149.txt.bz2 This is a multi-part message in MIME format. --------------020602080007080007040902 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 697 The FSM jump threader currently will not handle threading for compiler generated temporaries. I discovered this when looking at what tests regress if I remove the ability of the old threader to thread across backedges and why the FSM threader doesn't handle them. bitmap.c has a multitude of codes that the FSM bits can now optimize. I took one and let multidelta loose on it resulting in the included testcase. I wouldn't be surprised if the testcase ultimately turns out to be dependent on BRANCH_COST. I'll keep an eye on gcc-testresults to see if the test needs adjustment for other targets. Bootstrapped & regression tested on x86_64-linux-gnu. Installed on the trunk. Jeff --------------020602080007080007040902 Content-Type: text/plain; charset=UTF-8; name="P" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="P" Content-length: 5051 Y29tbWl0IDk3ZDcxYmMwOWQyMTk4MDcyYmVkNzZiYTM2ZTk4ODU4NGY4NTdi YjEKQXV0aG9yOiBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CkRhdGU6ICAg TW9uIE9jdCAxMiAxMDoyNDo0NSAyMDE1IC0wNjAwCgogICAgW1BBVENIXSBJ bXByb3ZlIEZTTSB0aHJlYWRlciB0byBoYW5kbGUgY29tcGlsZXIgdGVtcG9y YXJpZXMgdG9vCiAgICAKICAgIAkqIHRyZWUtc3NhLXRocmVhZGJhY2t3YXJk LmMgKGZzbV9maW5kX3RocmVhZF9wYXRoKTogUmVtb3ZlCiAgICAJcmVzdHJp Y3Rpb24gdGhhdCB0cmFjZWQgU1NBX05BTUUgaXMgYSB1c2VyIHZhcmlhYmxl LgogICAgCiAgICAJKiBnY2MuZGcvdHJlZS1zc2Evc3NhLWRvbS10aHJlYWQt MTEuYzogTmV3IHRlc3QuCgpkaWZmIC0tZ2l0IGEvZ2NjL0NoYW5nZUxvZyBi L2djYy9DaGFuZ2VMb2cKaW5kZXggYzM0ZTA4NC4uMzJlYzU1NCAxMDA2NDQK LS0tIGEvZ2NjL0NoYW5nZUxvZworKysgYi9nY2MvQ2hhbmdlTG9nCkBAIC0x LDMgKzEsOCBAQAorMjAxNS0xMC0xMiAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0 LmNvbT4KKworCSogdHJlZS1zc2EtdGhyZWFkYmFja3dhcmQuYyAoZnNtX2Zp bmRfdGhyZWFkX3BhdGgpOiBSZW1vdmUKKwlyZXN0cmljdGlvbiB0aGF0IHRy YWNlZCBTU0FfTkFNRSBpcyBhIHVzZXIgdmFyaWFibGUuCisKIDIwMTUtMTAt MTIgIFRvbSBkZSBWcmllcyAgPHRvbUBjb2Rlc291cmNlcnkuY29tPgogCiAJ UFIgdHJlZS1vcHRpbWl6YXRpb24vNjc0NzYKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK aW5kZXggZjRiN2QyNi4uODlmMzM2MyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK QEAgLTEsMyArMSw3IEBACisyMDE1LTEwLTEyICBKZWZmIExhdyAgPGxhd0By ZWRoYXQuY29tPgorCisJKiBnY2MuZGcvdHJlZS1zc2Evc3NhLWRvbS10aHJl YWQtMTEuYzogTmV3IHRlc3QuCisKIDIwMTUtMTAtMTIgIFZpbGxlIFZvdXRp bGFpbmVuICA8dmlsbGUudm91dGlsYWluZW5AZ21haWwuY29tPgogCiAJUFIg YysrLzU4NTY2CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy90 cmVlLXNzYS9zc2EtZG9tLXRocmVhZC0xMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdHJlZS1zc2Evc3NhLWRvbS10aHJlYWQtMTEuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2QwMzM0Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Evc3NhLWRv bS10aHJlYWQtMTEuYwpAQCAtMCwwICsxLDQ5IEBACisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUt dnJwMi1kZXRhaWxzIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgIkZTTSIgInZycDIiIH0gfSAqLworCit2b2lkIGFib3J0ICh2b2lk KTsKK3R5cGVkZWYgc3RydWN0IGJpdG1hcF9oZWFkX2RlZiAqYml0bWFwOwor dHlwZWRlZiBjb25zdCBzdHJ1Y3QgYml0bWFwX2hlYWRfZGVmICpjb25zdF9i aXRtYXA7Cit0eXBlZGVmIHN0cnVjdCBiaXRtYXBfb2JzdGFjaworeworICBz dHJ1Y3QgYml0bWFwX29ic3RhY2sgKm5leHQ7CisgIHVuc2lnbmVkIGludCBp bmR4OworfQorYml0bWFwX2VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBiaXRt YXBfaGVhZF9kZWYKK3sKKyAgYml0bWFwX2VsZW1lbnQgKmZpcnN0OworfQor Yml0bWFwX2hlYWQ7CitzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFy CitiaXRtYXBfZWx0X2lvciAoYml0bWFwIGRzdCwgYml0bWFwX2VsZW1lbnQg KiBkc3RfZWx0LAorCQliaXRtYXBfZWxlbWVudCAqIGRzdF9wcmV2LCBjb25z dCBiaXRtYXBfZWxlbWVudCAqIGFfZWx0LAorCQljb25zdCBiaXRtYXBfZWxl bWVudCAqIGJfZWx0KQoreworICAoKHZvaWQpICghKGFfZWx0IHx8IGJfZWx0 KSA/IGFib3J0ICgpLCAwIDogMCkpOworfQorCit1bnNpZ25lZCBjaGFyCiti aXRtYXBfaW9yX2FuZF9jb21wbCAoYml0bWFwIGRzdCwgY29uc3RfYml0bWFw IGEsIGNvbnN0X2JpdG1hcCBiLAorCQkgICAgICBjb25zdF9iaXRtYXAga2ls bCkKK3sKKyAgYml0bWFwX2VsZW1lbnQgKmRzdF9lbHQgPSBkc3QtPmZpcnN0 OworICBjb25zdCBiaXRtYXBfZWxlbWVudCAqYV9lbHQgPSBhLT5maXJzdDsK KyAgY29uc3QgYml0bWFwX2VsZW1lbnQgKmJfZWx0ID0gYi0+Zmlyc3Q7Cisg IGNvbnN0IGJpdG1hcF9lbGVtZW50ICpraWxsX2VsdCA9IGtpbGwtPmZpcnN0 OworICBiaXRtYXBfZWxlbWVudCAqZHN0X3ByZXYgPSAoKHZvaWQgKikgMCk7 CisgIHdoaWxlIChhX2VsdCB8fCBiX2VsdCkKKyAgICB7CisgICAgICBpZiAo Yl9lbHQgJiYga2lsbF9lbHQgJiYga2lsbF9lbHQtPmluZHggPT0gYl9lbHQt PmluZHgKKwkgICYmICghYV9lbHQgfHwgYV9lbHQtPmluZHggPj0gYl9lbHQt PmluZHgpKTsKKyAgICAgIGVsc2UKKwl7CisJICBiaXRtYXBfZWx0X2lvciAo ZHN0LCBkc3RfZWx0LCBkc3RfcHJldiwgYV9lbHQsIGJfZWx0KTsKKwkgIGlm IChhX2VsdCAmJiBiX2VsdCAmJiBhX2VsdC0+aW5keCA9PSBiX2VsdC0+aW5k eCkKKwkgICAgOworCSAgZWxzZSBpZiAoYV9lbHQgJiYgKCFiX2VsdCB8fCBh X2VsdC0+aW5keCA8PSBiX2VsdC0+aW5keCkpCisJICAgIGFfZWx0ID0gYV9l bHQtPm5leHQ7CisJfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2djYy90cmVl LXNzYS10aHJlYWRiYWNrd2FyZC5jIGIvZ2NjL3RyZWUtc3NhLXRocmVhZGJh Y2t3YXJkLmMKaW5kZXggMDAxMmFhMy4uZmY2NDgxYyAxMDA2NDQKLS0tIGEv Z2NjL3RyZWUtc3NhLXRocmVhZGJhY2t3YXJkLmMKKysrIGIvZ2NjL3RyZWUt c3NhLXRocmVhZGJhY2t3YXJkLmMKQEAgLTcwLDcgKzcwLDcgQEAgZnNtX2Zp bmRfdGhyZWFkX3BhdGggKGJhc2ljX2Jsb2NrIHN0YXJ0X2JiLCBiYXNpY19i bG9jayBlbmRfYmIsCiAgIHJldHVybiBmYWxzZTsKIH0KIAotLyogV2UgdHJh Y2UgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBFWFBSIGJhY2sgdGhyb3Vn aCBhbnkgcGhpIG5vZGVzIGxvb2tpbmcKKy8qIFdlIHRyYWNlIHRoZSB2YWx1 ZSBvZiB0aGUgU1NBX05BTUUgRVhQUiBiYWNrIHRocm91Z2ggYW55IHBoaSBu b2RlcyBsb29raW5nCiAgICBmb3IgcGxhY2VzIHdoZXJlIGl0IGdldHMgYSBj b25zdGFudCB2YWx1ZSBhbmQgc2F2ZSB0aGUgcGF0aC4gIFN0b3AgYWZ0ZXIK ICAgIGhhdmluZyByZWNvcmRlZCBNQVhfUEFUSFMganVtcCB0aHJlYWRpbmcg cGF0aHMuICAqLwogCkBAIC04MCwxMSArODAsMTAgQEAgZnNtX2ZpbmRfY29u dHJvbF9zdGF0ZW1lbnRfdGhyZWFkX3BhdGhzICh0cmVlIGV4cHIsCiAJCQkJ CSB2ZWM8YmFzaWNfYmxvY2ssIHZhX2djPiAqJnBhdGgsCiAJCQkJCSBib29s IHNlZW5fbG9vcF9waGkpCiB7Ci0gIHRyZWUgdmFyID0gU1NBX05BTUVfVkFS IChleHByKTsKICAgZ2ltcGxlICpkZWZfc3RtdCA9IFNTQV9OQU1FX0RFRl9T VE1UIChleHByKTsKICAgYmFzaWNfYmxvY2sgdmFyX2JiID0gZ2ltcGxlX2Ji IChkZWZfc3RtdCk7CiAKLSAgaWYgKHZhciA9PSBOVUxMIHx8IHZhcl9iYiA9 PSBOVUxMKQorICBpZiAodmFyX2JiID09IE5VTEwpCiAgICAgcmV0dXJuOwog CiAgIC8qIEZvciB0aGUgbW9tZW50IHdlIGFzc3VtZSB0aGF0IGFuIFNTQSBj aGFpbiBvbmx5IGNvbnRhaW5zIHBoaSBub2RlcywgYW5kCg== --------------020602080007080007040902--