From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14545 invoked by alias); 24 May 2011 21:18:33 -0000 Received: (qmail 14514 invoked by uid 22791); 24 May 2011 21:18:30 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-bw0-f47.google.com (HELO mail-bw0-f47.google.com) (209.85.214.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 24 May 2011 21:18:11 +0000 Received: by bwz5 with SMTP id 5so7455679bwz.20 for ; Tue, 24 May 2011 14:18:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.127.1 with SMTP id e1mr2914010bks.77.1306271888624; Tue, 24 May 2011 14:18:08 -0700 (PDT) Received: by 10.204.39.65 with HTTP; Tue, 24 May 2011 14:18:08 -0700 (PDT) In-Reply-To: References: <4DD92C77.5090107@netcologne.de> Date: Tue, 24 May 2011 22:06:00 -0000 Message-ID: Subject: Re: [patch, fortran] [4.6/4.7 Regression] Fix PR 48955 From: Paul Richard Thomas To: Thomas Koenig Cc: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary=0016e6d7ee74e6cbaa04a40c1fc9 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: 2011-05/txt/msg01777.txt.bz2 --0016e6d7ee74e6cbaa04a40c1fc9 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1241 Dear All, > > I have posted a simpler alternative on the PR that uses your > suggestion that forward and backward dependences need to to be > recorded to get this right. > > I believe that it's OK but have only now had the opportunity to put it > on to regtest. > Following some comments from Thomas, the attached is the version that I wound up with. Tell us which one you prefer and Thomas and I will do the honours. Bootstrapped and regtested on FC9/x86_64 - OK for trunk and 4.6? Paul 2011-05-24 Paul Thomas Thomas Koenig PR fortran/48955 * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET changed to GFC_ENABLE_REVERSE. * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed to GFC_INHIBIT_REVERSE. * gfortran.h : Enum gfc_reverse is now GFC_ENABLE_REVERSE, GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE. * dependency.c (gfc_dep_resolver): Change names for elements of gfc_reverse as necessary. Change the logic so that forward dependences are remembered as well as backward ones. When both have appeared, force a temporary. 2011-05-24 Thomas Koenig PR fortran/48955 * gfortran.dg/dependency_40.f90 : New test. --0016e6d7ee74e6cbaa04a40c1fc9 Content-Type: text/x-patch; charset=US-ASCII; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_go3cemav0 Content-length: 9053 SW5kZXg6IGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CioqKiBnY2MvZm9ydHJhbi90cmFucy1leHByLmMJKHJldmlz aW9uIDE3MzIxMykKLS0tIGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwkod29y a2luZyBjb3B5KQoqKioqKioqKioqKioqKiogZ2ZjX3RyYW5zX2Fzc2lnbm1l bnRfMSAoZ2ZjX2V4cHIgKiBleHByMQoqKiogNjA2OSw2MDc2ICoqKioKICAg ICAgICAvKiBDYWxjdWxhdGUgdGhlIGJvdW5kcyBvZiB0aGUgc2NhbGFyaXph dGlvbi4gICovCiAgICAgICAgZ2ZjX2NvbnZfc3Nfc3RhcnRzdHJpZGUgKCZs b29wKTsKICAgICAgICAvKiBFbmFibGUgbG9vcCByZXZlcnNhbC4gICovCiEg ICAgICAgZm9yIChuID0gMDsgbiA8IGxvb3AuZGltZW47IG4rKykKISAJbG9v cC5yZXZlcnNlW25dID0gR0ZDX1JFVkVSU0VfTk9UX1NFVDsKICAgICAgICAv KiBSZXNvbHZlIGFueSBkYXRhIGRlcGVuZGVuY2llcyBpbiB0aGUgc3RhdGVt ZW50LiAgKi8KICAgICAgICBnZmNfY29udl9yZXNvbHZlX2RlcGVuZGVuY2ll cyAoJmxvb3AsIGxzcywgcnNzKTsKICAgICAgICAvKiBTZXR1cCB0aGUgc2Nh bGFyaXppbmcgbG9vcHMuICAqLwotLS0gNjA2OSw2MDc2IC0tLS0KICAgICAg ICAvKiBDYWxjdWxhdGUgdGhlIGJvdW5kcyBvZiB0aGUgc2NhbGFyaXphdGlv bi4gICovCiAgICAgICAgZ2ZjX2NvbnZfc3Nfc3RhcnRzdHJpZGUgKCZsb29w KTsKICAgICAgICAvKiBFbmFibGUgbG9vcCByZXZlcnNhbC4gICovCiEgICAg ICAgZm9yIChuID0gMDsgbiA8IEdGQ19NQVhfRElNRU5TSU9OUzsgbisrKQoh IAlsb29wLnJldmVyc2Vbbl0gPSBHRkNfRU5BQkxFX1JFVkVSU0U7CiAgICAg ICAgLyogUmVzb2x2ZSBhbnkgZGF0YSBkZXBlbmRlbmNpZXMgaW4gdGhlIHN0 YXRlbWVudC4gICovCiAgICAgICAgZ2ZjX2NvbnZfcmVzb2x2ZV9kZXBlbmRl bmNpZXMgKCZsb29wLCBsc3MsIHJzcyk7CiAgICAgICAgLyogU2V0dXAgdGhl IHNjYWxhcml6aW5nIGxvb3BzLiAgKi8KSW5kZXg6IGdjYy9mb3J0cmFuL3Ry YW5zLWFycmF5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoqKiogZ2NjL2Zv cnRyYW4vdHJhbnMtYXJyYXkuYwkocmV2aXNpb24gMTczMjEyKQotLS0gZ2Nj L2ZvcnRyYW4vdHJhbnMtYXJyYXkuYwkod29ya2luZyBjb3B5KQoqKioqKioq KioqKioqKiogZ2ZjX2luaXRfbG9vcGluZm8gKGdmY19sb29waW5mbyAqIGxv b3ApCioqKiAyMjQ0LDIyNTAgKioqKgogICAgZm9yIChuID0gMDsgbiA8IEdG Q19NQVhfRElNRU5TSU9OUzsgbisrKQogICAgICB7CiAgICAgICAgbG9vcC0+ b3JkZXJbbl0gPSBuOwohICAgICAgIGxvb3AtPnJldmVyc2Vbbl0gPSBHRkNf Q0FOTk9UX1JFVkVSU0U7CiAgICAgIH0KICAKICAgIGxvb3AtPnNzID0gZ2Zj X3NzX3Rlcm1pbmF0b3I7Ci0tLSAyMjQ0LDIyNTAgLS0tLQogICAgZm9yIChu ID0gMDsgbiA8IEdGQ19NQVhfRElNRU5TSU9OUzsgbisrKQogICAgICB7CiAg ICAgICAgbG9vcC0+b3JkZXJbbl0gPSBuOwohICAgICAgIGxvb3AtPnJldmVy c2Vbbl0gPSBHRkNfSU5ISUJJVF9SRVZFUlNFOwogICAgICB9CiAgCiAgICBs b29wLT5zcyA9IGdmY19zc190ZXJtaW5hdG9yOwpJbmRleDogZ2NjL2ZvcnRy YW4vZ2ZvcnRyYW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CioqKiBnY2Mv Zm9ydHJhbi9nZm9ydHJhbi5oCShyZXZpc2lvbiAxNzMyMTIpCi0tLSBnY2Mv Zm9ydHJhbi9nZm9ydHJhbi5oCSh3b3JraW5nIGNvcHkpCioqKioqKioqKioq KioqKiBnZmNfZmNvYXJyYXk7CioqKiA1NzgsNTg3ICoqKioKICAKICB0eXBl ZGVmIGVudW0KICB7CiEgICBHRkNfUkVWRVJTRV9OT1RfU0VULAogICAgR0ZD X1JFVkVSU0VfU0VULAohICAgR0ZDX0NBTl9SRVZFUlNFLAohICAgR0ZDX0NB Tk5PVF9SRVZFUlNFCiAgfQogIGdmY19yZXZlcnNlOwogIAotLS0gNTc4LDU4 NyAtLS0tCiAgCiAgdHlwZWRlZiBlbnVtCiAgewohICAgR0ZDX0VOQUJMRV9S RVZFUlNFLAohICAgR0ZDX0ZPUldBUkRfU0VULAogICAgR0ZDX1JFVkVSU0Vf U0VULAohICAgR0ZDX0lOSElCSVRfUkVWRVJTRQogIH0KICBnZmNfcmV2ZXJz ZTsKICAKSW5kZXg6IGdjYy9mb3J0cmFuL2RlcGVuZGVuY3kuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CioqKiBnY2MvZm9ydHJhbi9kZXBlbmRlbmN5LmMJ KHJldmlzaW9uIDE3MzIxMikKLS0tIGdjYy9mb3J0cmFuL2RlcGVuZGVuY3ku Ywkod29ya2luZyBjb3B5KQoqKioqKioqKioqKioqKiogZ2ZjX2RlcF9yZXNv bHZlciAoZ2ZjX3JlZiAqbHJlZiwgZ2ZjX3JlZgoqKiogMTgwNywxODEzICoq KioKICAKICAJICAgICAgLyogTm93IGRlYWwgd2l0aCB0aGUgbG9vcCByZXZl cnNhbCBsb2dpYzogIFRoaXMgb25seSB3b3JrcyBvbgogIAkJIHJhbmdlcyBh bmQgaXMgYWN0aXZhdGVkIGJ5IHNldHRpbmcKISAJCQkJcmV2ZXJzZVtuXSA9 PSBHRkNfQ0FOX1JFVkVSU0UKICAJCSBUaGUgYWJpbGl0eSB0byByZXZlcnNl IG9yIG5vdCBpcyBzZXQgYnkgcHJldmlvdXMgY29uZGl0aW9ucwogIAkJIGlu IHRoaXMgZGltZW5zaW9uLiAgSWYgcmV2ZXJzYWwgaXMgbm90IGFjdGl2YXRl ZCwgdGhlCiAgCQkgdmFsdWUgR0ZDX0RFUF9CQUNLV0FSRCBpcyByZXNldCB0 byBHRkNfREVQX09WRVJMQVAuICAqLwotLS0gMTgwNywxODEzIC0tLS0KICAK ICAJICAgICAgLyogTm93IGRlYWwgd2l0aCB0aGUgbG9vcCByZXZlcnNhbCBs b2dpYzogIFRoaXMgb25seSB3b3JrcyBvbgogIAkJIHJhbmdlcyBhbmQgaXMg YWN0aXZhdGVkIGJ5IHNldHRpbmcKISAJCQkJcmV2ZXJzZVtuXSA9PSBHRkNf RU5BQkxFX1JFVkVSU0UKICAJCSBUaGUgYWJpbGl0eSB0byByZXZlcnNlIG9y IG5vdCBpcyBzZXQgYnkgcHJldmlvdXMgY29uZGl0aW9ucwogIAkJIGluIHRo aXMgZGltZW5zaW9uLiAgSWYgcmV2ZXJzYWwgaXMgbm90IGFjdGl2YXRlZCwg dGhlCiAgCQkgdmFsdWUgR0ZDX0RFUF9CQUNLV0FSRCBpcyByZXNldCB0byBH RkNfREVQX09WRVJMQVAuICAqLwoqKioqKioqKioqKioqKiogZ2ZjX2RlcF9y ZXNvbHZlciAoZ2ZjX3JlZiAqbHJlZiwgZ2ZjX3JlZgoqKiogMTgxNSwxODM5 ICoqKioKICAJCSAgICAmJiBscmVmLT51LmFyLmRpbWVuX3R5cGVbbl0gPT0g RElNRU5fUkFOR0UpCiAgCQl7CiAgCQkgIC8qIFNldCByZXZlcnNlIGlmIGJh Y2t3YXJkIGRlcGVuZGVuY2UgYW5kIG5vdCBpbmhpYml0ZWQuICAqLwohIAkJ ICBpZiAocmV2ZXJzZSAmJiByZXZlcnNlW25dICE9IEdGQ19DQU5OT1RfUkVW RVJTRSkKICAJCSAgICByZXZlcnNlW25dID0gKHRoaXNfZGVwID09IEdGQ19E RVBfQkFDS1dBUkQpID8KICAJCQkgICAgICAgICBHRkNfUkVWRVJTRV9TRVQg OiByZXZlcnNlW25dOwogIAohIAkJICAvKiBJbmhpYml0IGxvb3AgcmV2ZXJz YWwgaWYgZGVwZW5kZW5jZSBub3QgY29tcGF0aWJsZS4gICovCiEgCQkgIGlm IChyZXZlcnNlICYmIHJldmVyc2Vbbl0gIT0gR0ZDX1JFVkVSU0VfTk9UX1NF VAohIAkJICAgICAgICAmJiB0aGlzX2RlcCAhPSBHRkNfREVQX0VRVUFMCiEg CQkgICAgICAgICYmIHRoaXNfZGVwICE9IEdGQ19ERVBfQkFDS1dBUkQKISAJ CSAgICAgICAgJiYgdGhpc19kZXAgIT0gR0ZDX0RFUF9OT0RFUCkKICAJCSAg ICB7CiEgCSAgICAgICAgICAgICAgcmV2ZXJzZVtuXSA9IEdGQ19DQU5OT1Rf UkVWRVJTRTsKISAJCSAgICAgIGlmICh0aGlzX2RlcCAhPSBHRkNfREVQX0ZP UldBUkQpCiEgCQkJdGhpc19kZXAgPSBHRkNfREVQX09WRVJMQVA7CiAgCQkg ICAgfQogIAogIAkJICAvKiBJZiBubyBpbnRlbnRpb24gb2YgcmV2ZXJzaW5n IG9yIHJldmVyc2luZyBpcyBleHBsaWNpdGx5CiAgCQkgICAgIGluaGliaXRl ZCwgY29udmVydCBiYWNrd2FyZCBkZXBlbmRlbmNlIHRvIG92ZXJsYXAuICAq LwohIAkJICBpZiAodGhpc19kZXAgPT0gR0ZDX0RFUF9CQUNLV0FSRAohIAkJ ICAgICAgJiYgKHJldmVyc2UgPT0gTlVMTCB8fCByZXZlcnNlW25dID09IEdG Q19DQU5OT1RfUkVWRVJTRSkpCiAgCQkgICAgdGhpc19kZXAgPSBHRkNfREVQ X09WRVJMQVA7CiAgCQl9CiAgCi0tLSAxODE1LDE4NDggLS0tLQogIAkJICAg ICYmIGxyZWYtPnUuYXIuZGltZW5fdHlwZVtuXSA9PSBESU1FTl9SQU5HRSkK ICAJCXsKICAJCSAgLyogU2V0IHJldmVyc2UgaWYgYmFja3dhcmQgZGVwZW5k ZW5jZSBhbmQgbm90IGluaGliaXRlZC4gICovCiEgCQkgIGlmIChyZXZlcnNl ICYmIHJldmVyc2Vbbl0gPT0gR0ZDX0VOQUJMRV9SRVZFUlNFKQogIAkJICAg IHJldmVyc2Vbbl0gPSAodGhpc19kZXAgPT0gR0ZDX0RFUF9CQUNLV0FSRCkg PwogIAkJCSAgICAgICAgIEdGQ19SRVZFUlNFX1NFVCA6IHJldmVyc2Vbbl07 CiAgCiEgCQkgIC8qIFNldCBmb3J3YXJkIGlmIGZvcndhcmQgZGVwZW5kZW5j ZSBhbmQgbm90IGluaGliaXRlZC4gICovCiEgCQkgIGlmIChyZXZlcnNlICYm IHJldmVyc2Vbbl0gPT0gR0ZDX0VOQUJMRV9SRVZFUlNFKQohIAkJICAgIHJl dmVyc2Vbbl0gPSAodGhpc19kZXAgPT0gR0ZDX0RFUF9GT1JXQVJEKSA/CiEg CQkJICAgICAgICAgR0ZDX0ZPUldBUkRfU0VUIDogcmV2ZXJzZVtuXTsKISAK ISAJCSAgLyogRmxhZyB1cCBvdmVybGFwIGlmIGRlcGVuZGVuY2Ugbm90IGNv bXBhdGlibGUgd2l0aAohIAkJICAgICB0aGUgb3ZlcmFsbCBzdGF0ZSBvZiB0 aGUgZXhwcmVzc2lvbi4gICovCiEgCQkgIGlmIChyZXZlcnNlICYmIHJldmVy c2Vbbl0gPT0gR0ZDX1JFVkVSU0VfU0VUCiEgCQkgICAgICAgICYmIHRoaXNf ZGVwID09IEdGQ19ERVBfRk9SV0FSRCkKICAJCSAgICB7CiEgCSAgICAgICAg ICAgICAgcmV2ZXJzZVtuXSA9IEdGQ19JTkhJQklUX1JFVkVSU0U7CiEgCQkg ICAgICB0aGlzX2RlcCA9IEdGQ19ERVBfT1ZFUkxBUDsKISAJCSAgICB9CiEg CQkgIGVsc2UgaWYgKHJldmVyc2UgJiYgcmV2ZXJzZVtuXSA9PSBHRkNfRk9S V0FSRF9TRVQKISAJCSAgICAgICAgJiYgdGhpc19kZXAgPT0gR0ZDX0RFUF9C QUNLV0FSRCkKISAJCSAgICB7CiEgCSAgICAgICAgICAgICAgcmV2ZXJzZVtu XSA9IEdGQ19JTkhJQklUX1JFVkVSU0U7CiEgCQkgICAgICB0aGlzX2RlcCA9 IEdGQ19ERVBfT1ZFUkxBUDsKICAJCSAgICB9CiAgCiAgCQkgIC8qIElmIG5v IGludGVudGlvbiBvZiByZXZlcnNpbmcgb3IgcmV2ZXJzaW5nIGlzIGV4cGxp Y2l0bHkKICAJCSAgICAgaW5oaWJpdGVkLCBjb252ZXJ0IGJhY2t3YXJkIGRl cGVuZGVuY2UgdG8gb3ZlcmxhcC4gICovCiEgCQkgIGlmICgocmV2ZXJzZSA9 PSBOVUxMICYmIHRoaXNfZGVwID09IEdGQ19ERVBfQkFDS1dBUkQpCiEgCQkg ICAgICB8fCAocmV2ZXJzZSAhPSBOVUxMICYmIHJldmVyc2Vbbl0gPT0gR0ZD X0lOSElCSVRfUkVWRVJTRSkpCiAgCQkgICAgdGhpc19kZXAgPSBHRkNfREVQ X09WRVJMQVA7CiAgCQl9CiAgCkluZGV4OiBnY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2RlcGVuZGVuY3lfNDAuZjkwCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKioqIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVwZW5kZW5jeV80 MC5mOTAJKHJldmlzaW9uIDApCi0tLSBnY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2RlcGVuZGVuY3lfNDAuZjkwCShyZXZpc2lvbiAwKQoqKioqKioqKioq KioqKioKKioqIDAgKioqKgotLS0gMSwyOSAtLS0tCisgISB7IGRnLWRvIHJ1 biB9CisgISBQUiA0ODk1NSAtIG1pc3NpbmcgYXJyYXkgdGVtcG9yYXJ5IHdo ZW4gdGhlcmUgd2FzIGJvdGggYSBmb3J3YXJkCisgISBhbmQgYSBiYWNrd2Fy ZCBkZXBlbmRlbmN5LgorICEgVGVzdCBjYXNlIHNsaWdodGx5IG1vZGlmaWVk IGZyb20gdGhlIG9yaWdpbmFsIG9uZSBieSBLYWNwZXIgS293YWxpay4KKyBw cm9ncmFtIGFsYQorICAgIGltcGxpY2l0IG5vbmUKKyAKKyAgICBpbnRlZ2Vy LCBwYXJhbWV0ZXIgIDo6IG4gPSA2CisgICAgcmVhbCwgZGltZW5zaW9uKG4p LCBwYXJhbWV0ZXIgOjogcmVzdWx0ID0gWzEuLDEwLiwzMC4sOTAuLDI3MC4s IDI0My5dOworICAgIHJlYWwsIGRpbWVuc2lvbihuKSA6OiB2MCwgdjEKKyAg ICBjaGFyYWN0ZXIobGVuPTgwKSA6OiBsaW5lMSwgbGluZTIKKyAKKyAgICB2 MCA9IFsxLjAsIDMuMCwgOS4wLCAyNy4wLCA4MS4wLCAyNDMuMF0KKyAgICB2 MSA9IHYwCisgCisgICAgdjEoMjpuLTEpID0gdjEoMTpuLTIpICsgdjEoMzpu KQorICAgIGlmIChhbnkodjEgLz0gcmVzdWx0KSkgY2FsbCBhYm9ydAorICAg IHYxID0gdjAKKyAgICB2MSgyOm4tMSkgPSB2MCgxOm4tMikgKyB2MCgzOm4p CisgICAgaWYgKGFueSh2MSAvPSByZXN1bHQpKSBjYWxsIGFib3J0CisgCisg ICAgdjEgPSB2MAorICAgIHYxKDI6bi0xKSA9IHYxKDM6bikgKyB2MSgxOm4t MikKKyAgICBpZiAoYW55KHYxIC89IHJlc3VsdCkpIGNhbGwgYWJvcnQKKyAg ICB2MSA9IHYwCisgICAgdjEoMjpuLTEpID0gdjAoMzpuKSArIHYwKDE6bi0y KQorICAgIGlmIChhbnkodjEgLz0gcmVzdWx0KSkgY2FsbCBhYm9ydAorIAor IGVuZCBwcm9ncmFtIGFsYQo= --0016e6d7ee74e6cbaa04a40c1fc9--