From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4711 invoked by alias); 21 Mar 2012 23:10:17 -0000 Received: (qmail 4692 invoked by uid 22791); 21 Mar 2012 23:10:15 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com) (209.85.212.179) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 21 Mar 2012 23:10:01 +0000 Received: by wibhn6 with SMTP id hn6so39816wib.8 for ; Wed, 21 Mar 2012 16:09:59 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.95.129 with SMTP id dk1mr7880wib.3.1332371399481; Wed, 21 Mar 2012 16:09:59 -0700 (PDT) Received: by 10.180.83.165 with HTTP; Wed, 21 Mar 2012 16:09:59 -0700 (PDT) In-Reply-To: References: Date: Wed, 21 Mar 2012 23:10:00 -0000 Message-ID: Subject: Re: [patch] Split parts of cse_insn out to a few new functions From: Steven Bosscher To: GCC Patches Cc: Ian Lance Taylor Content-Type: multipart/mixed; boundary=f46d0444ee2df9991804bbc8e3a5 X-IsSubscribed: yes 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 X-SW-Source: 2012-03/txt/msg01466.txt.bz2 --f46d0444ee2df9991804bbc8e3a5 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1358 On Wed, Mar 21, 2012 at 1:13 AM, Ian Lance Taylor wrote: > On Tue, Mar 20, 2012 at 2:06 PM, Steven Bosscher wrote: >> >> This patch splits a couple of pieces of cse_insn out to new functions. >> There are no functional changes, and no code generation differences as >> far as I could tell on x86_64 (-m64 and -m32). Likewise for the attached patch. >> The purpose of the patch is and, loto hopefully make cse_insn easier >> to understand. In a follow-up patch, I will make canonicalize_insn run >> only once per insn (it currently, i.e. before and after this patch, >> runs multiple times for CSE on extended basic blocks if a block is in >> multiple extended basic blocks). That is what the attached patch does. Bootstrapped&tested on x86_64-unknown-linux-gnu. OK for trunk? Ciao! Steven * cse.c (cse_canonicalized_basic_blocks): New simple bitmap to tag basic blocks that have already been traversed at least once, so that all insns have been canonicalized. (cse_insn): Call canonicalize_insn only if the basic block that contains insn is visited for the first time. (cse_extended_basic_block): After visiting all insns in a basic block, mark the block in cse_canonicalized_basic_blocks. (cse_main): Setup and destroy cse_canonicalized_basic_blocks. (cse_find_path): Micro-optimization, reorder one condition to avoid a reference to cfun. --f46d0444ee2df9991804bbc8e3a5 Content-Type: text/x-patch; charset=US-ASCII; name="canon_insn_once.diff" Content-Disposition: attachment; filename="canon_insn_once.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h02zit2z0 Content-length: 4824 CSogY3NlLmMgKGNzZV9jYW5vbmljYWxpemVkX2Jhc2ljX2Jsb2Nrcyk6IE5l dyBzaW1wbGUgYml0bWFwIHRvCgl0YWcgYmFzaWMgYmxvY2tzIHRoYXQgaGF2 ZSBhbHJlYWR5IGJlZW4gdHJhdmVyc2VkIGF0IGxlYXN0IG9uY2UsCglzbyB0 aGF0IGFsbCBpbnNucyBoYXZlIGJlZW4gY2Fub25pY2FsaXplZC4KCShjc2Vf aW5zbik6IENhbGwgY2Fub25pY2FsaXplX2luc24gb25seSBpZiB0aGUgYmFz aWMgYmxvY2sgdGhhdAoJY29udGFpbnMgaW5zbiBpcyB2aXNpdGVkIGZvciB0 aGUgZmlyc3QgdGltZS4KCShjc2VfZXh0ZW5kZWRfYmFzaWNfYmxvY2spOiBB ZnRlciB2aXNpdGluZyBhbGwgaW5zbnMgaW4gYSBiYXNpYwoJYmxvY2ssIG1h cmsgdGhlIGJsb2NrIGluIGNzZV9jYW5vbmljYWxpemVkX2Jhc2ljX2Jsb2Nr cy4KCShjc2VfbWFpbik6IFNldHVwIGFuZCBkZXN0cm95IGNzZV9jYW5vbmlj YWxpemVkX2Jhc2ljX2Jsb2Nrcy4KCgkoY3NlX2ZpbmRfcGF0aCk6IE1pY3Jv LW9wdGltaXphdGlvbiwgcmVvcmRlciBvbmUgY29uZGl0aW9uIHRvCglhdm9p ZCBhIHJlZmVyZW5jZSB0byBjZnVuLgoKSW5kZXg6IGNzZS5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGNzZS5jCShyZXZpc2lvbiAxODU2MjIpCisr KyBjc2UuYwkod29ya2luZyBjb3B5KQpAQCAtNTUxLDYgKzU1MSwxMCBAQCBz dGF0aWMgYml0bWFwIGNzZV9lYmJfbGl2ZV9pbiwgY3NlX2ViYl9sCiAgICBh bHJlYWR5IGFzIHBhcnQgb2YgYW4gYWxyZWFkeSBwcm9jZXNzZWQgZXh0ZW5k ZWQgYmFzaWMgYmxvY2suICAqLwogc3RhdGljIHNiaXRtYXAgY3NlX3Zpc2l0 ZWRfYmFzaWNfYmxvY2tzOwogCisvKiBBIHNpbXBsZSBiaXRtYXAgdG8gdHJh Y2sgZm9yIHdoaWNoIGJhc2ljIGJsb2NrcyBhbGwgaW5zbnMgaGF2ZSBiZWVu CisgICBjYW5vbmljYWxpemVkIGFscmVhZHkuICAqLworc3RhdGljIHNiaXRt YXAgY3NlX2Nhbm9uaWNhbGl6ZWRfYmFzaWNfYmxvY2tzOworCiBzdGF0aWMg Ym9vbCBmaXhlZF9iYXNlX3BsdXNfcCAocnR4IHgpOwogc3RhdGljIGludCBu b3RyZWdfY29zdCAocnR4LCBlbnVtIHJ0eF9jb2RlLCBpbnQpOwogc3RhdGlj IGludCBhcHByb3hfcmVnX2Nvc3RfMSAocnR4ICosIHZvaWQgKik7CkBAIC00 NDkyLDggKzQ0OTYsMTAgQEAgY3NlX2luc24gKHJ0eCBpbnNuKQogICAvKiBS ZWNvcmQgYWxsIHRoZSBTRVRzIGluIHRoaXMgaW5zdHJ1Y3Rpb24uICAqLwog ICBuX3NldHMgPSBmaW5kX3NldHNfaW5faW5zbiAoaW5zbiwgJnNldHMpOwog Ci0gIC8qIFN1YnN0aXR1dGUgdGhlIGNhbm9uaWNhbCByZWdpc3RlciB3aGVy ZSBwb3NzaWJsZS4gICovCi0gIGNhbm9uaWNhbGl6ZV9pbnNuIChpbnNuLCAm c2V0cywgbl9zZXRzKTsKKyAgLyogSWYgd2UgaGF2ZSBub3QgdmlzaXRlZCB0 aGlzIGJsb2NrIGJlZm9yZSAoYXMgcGFydCBvZiBhbm90aGVyIGV4dGVuZGVk CisgICAgIGJhc2ljIGJsb2NrLCBzdWJzdGl0dXRlIHRoZSBjYW5vbmljYWwg cmVnaXN0ZXIgd2hlcmUgcG9zc2libGUuICAqLworICBpZiAoIVRFU1RfQklU IChjc2VfY2Fub25pY2FsaXplZF9iYXNpY19ibG9ja3MsIEJMT0NLX0ZPUl9J TlNOIChpbnNuKS0+aW5kZXgpKQorICAgIGNhbm9uaWNhbGl6ZV9pbnNuIChp bnNuLCAmc2V0cywgbl9zZXRzKTsKIAogICAvKiBJZiB0aGlzIGluc24gaGFz IGEgUkVHX0VRVUFMIG5vdGUsIHN0b3JlIHRoZSBlcXVpdmFsZW50IHZhbHVl IGluIFNSQ19FUVYsCiAgICAgIGlmIGRpZmZlcmVudCwgb3IgaWYgdGhlIERF U1QgaXMgYSBTVFJJQ1RfTE9XX1BBUlQuICBUaGUgbGF0dGVyIGNvbmRpdGlv bgpAQCAtNjI1NCwxMCArNjI2MCw5IEBAIGNzZV9maW5kX3BhdGggKGJhc2lj X2Jsb2NrIGZpcnN0X2JiLCBzdHIKIAkgIGVsc2UKIAkgICAgZSA9IE5VTEw7 CiAKLQkgIGlmIChlCi0JICAgICAgJiYgISgoZS0+ZmxhZ3MgJiBFREdFX0FC Tk9STUFMX0NBTEwpICYmIGNmdW4tPmhhc19ub25sb2NhbF9sYWJlbCkKLQkg ICAgICAmJiBlLT5kZXN0ICE9IEVYSVRfQkxPQ0tfUFRSCisJICBpZiAoZSAm JiBlLT5kZXN0ICE9IEVYSVRfQkxPQ0tfUFRSCiAJICAgICAgJiYgc2luZ2xl X3ByZWRfcCAoZS0+ZGVzdCkKKwkgICAgICAmJiAhKChlLT5mbGFncyAmIEVE R0VfQUJOT1JNQUxfQ0FMTCkgJiYgY2Z1bi0+aGFzX25vbmxvY2FsX2xhYmVs KQogCSAgICAgIC8qIEF2b2lkIHZpc2l0aW5nIGJhc2ljIGJsb2NrcyB0d2lj ZS4gIFRoZSBsYXJnZSBjb21tZW50CiAJCSBhYm92ZSBleHBsYWlucyB3aHkg dGhpcyBjYW4gaGFwcGVuLiAgKi8KIAkgICAgICAmJiAhVEVTVF9CSVQgKGNz ZV92aXNpdGVkX2Jhc2ljX2Jsb2NrcywgZS0+ZGVzdC0+aW5kZXgpKQpAQCAt NjQ1Miw2ICs2NDU3LDkgQEAgY3NlX2V4dGVuZGVkX2Jhc2ljX2Jsb2NrIChz dHJ1Y3QgY3NlX2JhcwogCSAgICB9CiAJfQogCisgICAgICAvKiBXZSBoYXZl IG5vdyBjYW5vbmljYWxpemVkIGFsbCBpbnNucyBpbiB0aGlzIGJhc2ljIGJs b2NrLiAgKi8KKyAgICAgIFNFVF9CSVQgKGNzZV9jYW5vbmljYWxpemVkX2Jh c2ljX2Jsb2NrcywgYmItPmluZGV4KTsKKwogICAgICAgLyogV2l0aCBub24t Y2FsbCBleGNlcHRpb25zLCB3ZSBhcmUgbm90IGFsd2F5cyBhYmxlIHRvIHVw ZGF0ZQogCSB0aGUgQ0ZHIHByb3Blcmx5IGluc2lkZSBjc2VfaW5zbi4gIFNv IGNsZWFuIHVwIHBvc3NpYmx5CiAJIHJlZHVuZGFudCBFSCBlZGdlcyBoZXJl LiAgKi8KQEAgLTY1NTUsNiArNjU2MywxMCBAQCBjc2VfbWFpbiAocnR4IGYg QVRUUklCVVRFX1VOVVNFRCwgaW50IG5yCiAgIGNzZV92aXNpdGVkX2Jhc2lj X2Jsb2NrcyA9IHNiaXRtYXBfYWxsb2MgKGxhc3RfYmFzaWNfYmxvY2spOwog ICBzYml0bWFwX3plcm8gKGNzZV92aXNpdGVkX2Jhc2ljX2Jsb2Nrcyk7CiAK KyAgLyogU2V0IHVwIHRoZSB0YWJsZSBvZiBhbHJlYWR5IGNhbm9uaWNhbGl6 ZWQgYmFzaWMgYmxvY2tzLiAgKi8KKyAgY3NlX2Nhbm9uaWNhbGl6ZWRfYmFz aWNfYmxvY2tzID0gc2JpdG1hcF9hbGxvYyAobGFzdF9iYXNpY19ibG9jayk7 CisgIHNiaXRtYXBfemVybyAoY3NlX2Nhbm9uaWNhbGl6ZWRfYmFzaWNfYmxv Y2tzKTsKKwogICAvKiBMb29wIG92ZXIgYmFzaWMgYmxvY2tzIGluIHJldmVy c2UgY29tcGxldGlvbiBvcmRlciAoUlBPKSwKICAgICAgZXhjbHVkaW5nIHRo ZSBFTlRSWSBhbmQgRVhJVCBibG9ja3MuICAqLwogICBuX2Jsb2NrcyA9IHBy ZV9hbmRfcmV2X3Bvc3Rfb3JkZXJfY29tcHV0ZSAoTlVMTCwgcmNfb3JkZXIs IGZhbHNlKTsKQEAgLTY1OTgsNiArNjYxMCw3IEBAIGNzZV9tYWluIChydHgg ZiBBVFRSSUJVVEVfVU5VU0VELCBpbnQgbnIKICAgZnJlZSAocmVnX2Vxdl90 YWJsZSk7CiAgIGZyZWUgKGViYl9kYXRhLnBhdGgpOwogICBzYml0bWFwX2Zy ZWUgKGNzZV92aXNpdGVkX2Jhc2ljX2Jsb2Nrcyk7CisgIHNiaXRtYXBfZnJl ZSAoY3NlX2Nhbm9uaWNhbGl6ZWRfYmFzaWNfYmxvY2tzKTsKICAgZnJlZSAo cmNfb3JkZXIpOwogICBydGxfaG9va3MgPSBnZW5lcmFsX3J0bF9ob29rczsK IAo= --f46d0444ee2df9991804bbc8e3a5--