From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15860 invoked by alias); 6 Jun 2013 09:55: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 15850 invoked by uid 89); 6 Jun 2013 09:55:24 -0000 X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE autolearn=ham version=3.3.1 Received: from mail-la0-f53.google.com (HELO mail-la0-f53.google.com) (209.85.215.53) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 06 Jun 2013 09:55:21 +0000 Received: by mail-la0-f53.google.com with SMTP id fs12so883669lab.26 for ; Thu, 06 Jun 2013 02:55:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-gm-message-state; bh=suDW2pO1GgpMRk15ofpKhidRrcuobrhJq9ha59AvmzY=; b=g6725HkEigTeUL++CDbR2KU7L8eQgY1wQXoDVdgeLAaXiK6BN1Zdoes8HQhVC5Mo4t PG/kjzlfEVrRmu71hJezfYJ/fZRvNstuvPkMq0m/fzN5RNY62yFtjE50W7IbBgXLZU47 MOLzlpAZ3ERWan+qqLJW0LCpNAdHt4ARN8orfffcZjV0C/NXY1t4HJ8uNVC29/84NNEH A73J0MBd1Zwu4dASOwSy86Ffwv0qZ5Lk+IRfi13/e7PCu7eOeZLR6Glsjg70k6FS8lZM Yq5xs7AR7PbNOdrmLnwkg0WKXBewJI8y+ESfTEFOJc5oGvEPeP0qsrdpjZl+SjMdz7Go 7Juw== MIME-Version: 1.0 X-Received: by 10.152.5.234 with SMTP id v10mr17379947lav.52.1370512518861; Thu, 06 Jun 2013 02:55:18 -0700 (PDT) Received: by 10.112.210.193 with HTTP; Thu, 6 Jun 2013 02:55:18 -0700 (PDT) Date: Thu, 06 Jun 2013 09:55:00 -0000 Message-ID: Subject: [PATCH] Enhance shrink-wrap From: Zhenqiang Chen To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=089e013d1a4ad8e33e04de794fb9 X-Gm-Message-State: ALoCoQnLq/PK3CNpQ8HTtTvHZDBq14kHlc75SFqwKi/mxg0BkwZ9XENliiBC+UY+2OtKWVITiVui X-Virus-Found: No X-SW-Source: 2013-06/txt/msg00305.txt.bz2 --089e013d1a4ad8e33e04de794fb9 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1044 Hi, The patch enhance prepare_shrink_wrap by doing copyprop for the entry block. This exposes more opportunities for shrink-wrapping. These kinds of copies often occur when incoming argument registers are moved to call-saved registers because their values are live across one or more calls during the function. * For SPECint2000 (-O3), the number of functions, which can be shrink-wrapped, increase from 197 to 364 on ARM and from 364 to 618 on X86-64 with the patch. * No SPECint2000 performance regression for X86-64 and ARM. * On X86-64 (-O3), 253.perlbmk is ~3% better. * On ARM (A15, -O3), 453.povray is ~5% better. * Bootstrapped and no make check regression for X86-64 and ARM A9. Is it OK for trunk? Thanks! -Zhenqiang ChangeLog: 2013-06-06 Zhenqiang Chen * function.c (prepare_shrink_wrap): Do copy prop for entry block. * function.h (copyprop_hardreg_forward_blocks): New. * regcprop.c (copyprop_hardreg_forward_blocks): New. (copyprop_hardreg_forward): Call copyprop_hardreg_forward_blocks. --089e013d1a4ad8e33e04de794fb9 Content-Type: application/octet-stream; name="Enhance-shrink-wrap.patch" Content-Disposition: attachment; filename="Enhance-shrink-wrap.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hhlpjsds0 Content-length: 4836 ZGlmZiAtLWdpdCBhL2djYy9mdW5jdGlvbi5jIGIvZ2NjL2Z1bmN0aW9uLmMK aW5kZXggMzZjODc0Zi4uMWE1MGVjOSAxMDA2NDQKLS0tIGEvZ2NjL2Z1bmN0 aW9uLmMKKysrIGIvZ2NjL2Z1bmN0aW9uLmMKQEAgLTU1NjMsOSArNTU2Mywx NSBAQCBwcmVwYXJlX3Nocmlua193cmFwIChiYXNpY19ibG9jayBlbnRyeV9i bG9jaykKICAgcnR4IGluc24sIGN1cnIsIHg7CiAgIEhBUkRfUkVHX1NFVCB1 c2VzLCBkZWZzOwogICBkZl9yZWYgKnJlZjsKKyAgcnR4IGp1bXAgPSBCQl9F TkQgKGVudHJ5X2Jsb2NrKTsKIAogICBDTEVBUl9IQVJEX1JFR19TRVQgKHVz ZXMpOwogICBDTEVBUl9IQVJEX1JFR19TRVQgKGRlZnMpOworCisgIC8qIERv IGNvcHkgcHJvcGFnYXRpb24gZm9yIHRoZSBlbnRyeSBibG9jay4gICovCisg IGlmIChKVU1QX1AgKGp1bXApKQorICAgIGNvcHlwcm9wX2hhcmRyZWdfZm9y d2FyZF9ibG9ja3MgKHRydWUpOworCiAgIEZPUl9CQl9JTlNOU19SRVZFUlNF X1NBRkUgKGVudHJ5X2Jsb2NrLCBpbnNuLCBjdXJyKQogICAgIGlmIChOT05E RUJVR19JTlNOX1AgKGluc24pCiAJJiYgIW1vdmVfaW5zbl9mb3Jfc2hyaW5r X3dyYXAgKGVudHJ5X2Jsb2NrLCBpbnNuLCB1c2VzLCBkZWZzKSkKZGlmZiAt LWdpdCBhL2djYy9mdW5jdGlvbi5oIGIvZ2NjL2Z1bmN0aW9uLmgKaW5kZXgg YzY1MWY1MC4uZDE0ZWEyNyAxMDA2NDQKLS0tIGEvZ2NjL2Z1bmN0aW9uLmgK KysrIGIvZ2NjL2Z1bmN0aW9uLmgKQEAgLTc5MSw2ICs3OTEsNyBAQCBleHRl cm4gaW50IGdldF9sYXN0X2Z1bmNkZWZfbm8gKHZvaWQpOwogCiAjaWZkZWYg SEFWRV9zaW1wbGVfcmV0dXJuCiBleHRlcm4gYm9vbCByZXF1aXJlc19zdGFj a19mcmFtZV9wIChydHgsIEhBUkRfUkVHX1NFVCwgSEFSRF9SRUdfU0VUKTsK K2V4dGVybiB1bnNpZ25lZCBpbnQgY29weXByb3BfaGFyZHJlZ19mb3J3YXJk X2Jsb2NrcyAoYm9vbCBlbnRyeV9ibG9ja19vbmx5KTsKICNlbmRpZiAgICAg ICAgICAgICAgICAgICAgICAgIAogCiBleHRlcm4gcnR4IGdldF9oYXJkX3Jl Z19pbml0aWFsX3ZhbCAoZW51bSBtYWNoaW5lX21vZGUsIHVuc2lnbmVkIGlu dCk7CmRpZmYgLS1naXQgYS9nY2MvcmVnY3Byb3AuYyBiL2djYy9yZWdjcHJv cC5jCmluZGV4IDg5NjkwMmYuLjEyN2VlODIgMTAwNjQ0Ci0tLSBhL2djYy9y ZWdjcHJvcC5jCisrKyBiL2djYy9yZWdjcHJvcC5jCkBAIC0xMDM4LDEwICsx MDM4LDExIEBAIGNvcHlwcm9wX2hhcmRyZWdfZm9yd2FyZF8xIChiYXNpY19i bG9jayBiYiwgc3RydWN0IHZhbHVlX2RhdGEgKnZkKQogICByZXR1cm4gYW55 dGhpbmdfY2hhbmdlZDsKIH0KIAotLyogTWFpbiBlbnRyeSBwb2ludCBmb3Ig dGhlIGZvcndhcmQgY29weSBwcm9wYWdhdGlvbiBvcHRpbWl6YXRpb24uICAq LworLyogSWYgRU5UUllfQkxPQ0tfT05MWSBpcyBUUlVFLCBpdCBvbmx5IHBy b2dhZ2F0ZXMgdGhlIGZpcnN0IGJhc2ljIGJsb2NrLgorICAgU2hyaW5rLXdy YXAgdXNlcyBpdCB0byBvcHRpbWl6ZSBjb3BpZXMgZnJvbSBhcmd1bWVudHMu ICAqLwogCi1zdGF0aWMgdW5zaWduZWQgaW50Ci1jb3B5cHJvcF9oYXJkcmVn X2ZvcndhcmQgKHZvaWQpCit1bnNpZ25lZCBpbnQKK2NvcHlwcm9wX2hhcmRy ZWdfZm9yd2FyZF9ibG9ja3MgKGJvb2wgZW50cnlfYmxvY2tfb25seSkKIHsK ICAgc3RydWN0IHZhbHVlX2RhdGEgKmFsbF92ZDsKICAgYmFzaWNfYmxvY2sg YmI7CkBAIC0xMDkwLDMyICsxMDkxLDM4IEBAIGNvcHlwcm9wX2hhcmRyZWdf Zm9yd2FyZCAodm9pZCkKIAlpbml0X3ZhbHVlX2RhdGEgKGFsbF92ZCArIGJi LT5pbmRleCk7CiAKICAgICAgIGNvcHlwcm9wX2hhcmRyZWdfZm9yd2FyZF8x IChiYiwgYWxsX3ZkICsgYmItPmluZGV4KTsKKworICAgICAgaWYgKGVudHJ5 X2Jsb2NrX29ubHkpIGJyZWFrOwogICAgIH0KIAogICBpZiAoTUFZX0hBVkVf REVCVUdfSU5TTlMpCiAgICAgewogICAgICAgRk9SX0VBQ0hfQkIgKGJiKQot CWlmIChiaXRtYXBfYml0X3AgKHZpc2l0ZWQsIGJiLT5pbmRleCkKLQkgICAg JiYgYWxsX3ZkW2JiLT5pbmRleF0ubl9kZWJ1Z19pbnNuX2NoYW5nZXMpCi0J ICB7Ci0JICAgIHVuc2lnbmVkIGludCByZWdubzsKLQkgICAgYml0bWFwIGxp dmU7CisJeworCSAgaWYgKGJpdG1hcF9iaXRfcCAodmlzaXRlZCwgYmItPmlu ZGV4KQorCSAgICAgICYmIGFsbF92ZFtiYi0+aW5kZXhdLm5fZGVidWdfaW5z bl9jaGFuZ2VzKQorCSAgICB7CisJICAgICAgdW5zaWduZWQgaW50IHJlZ25v OworCSAgICAgIGJpdG1hcCBsaXZlOwogCi0JICAgIGlmICghYW5hbHl6ZV9j YWxsZWQpCi0JICAgICAgewotCQlkZl9hbmFseXplICgpOwotCQlhbmFseXpl X2NhbGxlZCA9IHRydWU7Ci0JICAgICAgfQotCSAgICBsaXZlID0gZGZfZ2V0 X2xpdmVfb3V0IChiYik7Ci0JICAgIGZvciAocmVnbm8gPSAwOyByZWdubyA8 IEZJUlNUX1BTRVVET19SRUdJU1RFUjsgcmVnbm8rKykKLQkgICAgICBpZiAo YWxsX3ZkW2JiLT5pbmRleF0uZVtyZWdub10uZGVidWdfaW5zbl9jaGFuZ2Vz KQorCSAgICAgIGlmICghYW5hbHl6ZV9jYWxsZWQpCiAJCXsKLQkJICBpZiAo UkVHTk9fUkVHX1NFVF9QIChsaXZlLCByZWdubykpCi0JCSAgICBhcHBseV9k ZWJ1Z19pbnNuX2NoYW5nZXMgKGFsbF92ZCArIGJiLT5pbmRleCwgcmVnbm8p OwotCQkgIGlmIChhbGxfdmRbYmItPmluZGV4XS5uX2RlYnVnX2luc25fY2hh bmdlcyA9PSAwKQotCQkgICAgYnJlYWs7CisJCSAgZGZfYW5hbHl6ZSAoKTsK KwkJICBhbmFseXplX2NhbGxlZCA9IHRydWU7CiAJCX0KLQkgIH0KKwkgICAg ICBsaXZlID0gZGZfZ2V0X2xpdmVfb3V0IChiYik7CisJICAgICAgZm9yIChy ZWdubyA9IDA7IHJlZ25vIDwgRklSU1RfUFNFVURPX1JFR0lTVEVSOyByZWdu bysrKQorCQlpZiAoYWxsX3ZkW2JiLT5pbmRleF0uZVtyZWdub10uZGVidWdf aW5zbl9jaGFuZ2VzKQorCQkgIHsKKwkJICAgIGlmIChSRUdOT19SRUdfU0VU X1AgKGxpdmUsIHJlZ25vKSkKKwkJICAgICAgYXBwbHlfZGVidWdfaW5zbl9j aGFuZ2VzIChhbGxfdmQgKyBiYi0+aW5kZXgsIHJlZ25vKTsKKwkJICAgIGlm IChhbGxfdmRbYmItPmluZGV4XS5uX2RlYnVnX2luc25fY2hhbmdlcyA9PSAw KQorCQkgICAgICBicmVhazsKKwkJICB9CisJICAgIH0KKworCSAgaWYgKGVu dHJ5X2Jsb2NrX29ubHkpIGJyZWFrOworCX0KIAogICAgICAgZnJlZV9hbGxv Y19wb29sIChkZWJ1Z19pbnNuX2NoYW5nZXNfcG9vbCk7CiAgICAgfQpAQCAt MTEyNSw2ICsxMTMyLDE0IEBAIGNvcHlwcm9wX2hhcmRyZWdfZm9yd2FyZCAo dm9pZCkKICAgcmV0dXJuIDA7CiB9CiAKKy8qIE1haW4gZW50cnkgcG9pbnQg Zm9yIHRoZSBmb3J3YXJkIGNvcHkgcHJvcGFnYXRpb24gb3B0aW1pemF0aW9u LiAgKi8KKworc3RhdGljIHVuc2lnbmVkIGludAorY29weXByb3BfaGFyZHJl Z19mb3J3YXJkICh2b2lkKQoreworICAgcmV0dXJuIGNvcHlwcm9wX2hhcmRy ZWdfZm9yd2FyZF9ibG9ja3MgKGZhbHNlKTsKK30KKwogLyogRHVtcCB0aGUg dmFsdWUgY2hhaW4gZGF0YSB0byBzdGRlcnIuICAqLwogCiBERUJVR19GVU5D VElPTiB2b2lkCg== --089e013d1a4ad8e33e04de794fb9--