From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 123319 invoked by alias); 30 Apr 2015 20:44:10 -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 123309 invoked by uid 89); 30 Apr 2015 20:44:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-qg0-f54.google.com Received: from mail-qg0-f54.google.com (HELO mail-qg0-f54.google.com) (209.85.192.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 30 Apr 2015 20:44:08 +0000 Received: by qgdy78 with SMTP id y78so30305781qgd.0 for ; Thu, 30 Apr 2015 13:44:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=I7xu94r9u04kOFJw5+6CjqdcKzDi5RoUryLQ01h/+fs=; b=coRO7iM7a06EWtuZ2afNfVXD3taFem/XX4tlx6r9SGRQongqNQvJTeDEBjFsAYxLJU 4jnzNxFnBsjJ64CKaxY3kWbmGDJmqHoVRo9NvlMOgQd18cmYCdXqmV/BEgGXYd6vA1MZ FiF+eNeQ5kj4aHK2qUrLWUu7rJajryuIZs/78mG0dkg0T9SVeSBvuApK5pNn1AaOqJC4 rql+K6n5oqX74U34ussh0d1TQykz394kq7UEO2f7F5L/6Z+o1Vv/cbGT71rRu8LSkk1D MYH+tSnqoLgQWIGt2ZTWZp9pDh2PZ+n7h5aUYXKEpudSvMTy7hgX+Y7q3rhARW4NShd/ wCQA== X-Gm-Message-State: ALoCoQnPaJBBDopDI/W2ZS0p6FwpHzDQIfRRLiHhVf7DX+M89pJam5boUpYiSnZLcZluTyOzeV1G MIME-Version: 1.0 X-Received: by 10.55.24.169 with SMTP id 41mr11245112qky.35.1430426646503; Thu, 30 Apr 2015 13:44:06 -0700 (PDT) Received: by 10.96.150.99 with HTTP; Thu, 30 Apr 2015 13:44:06 -0700 (PDT) Date: Thu, 30 Apr 2015 21:11:00 -0000 Message-ID: Subject: Go patch committed: Use alloca for non-escaping new expressions From: Ian Lance Taylor To: gcc-patches , "gofrontend-dev@googlegroups.com" Content-Type: multipart/mixed; boundary=001a1144140824c8a00514f72821 X-SW-Source: 2015-04/txt/msg02094.txt.bz2 --001a1144140824c8a00514f72821 Content-Type: text/plain; charset=UTF-8 Content-length: 413 This patch from Chris Manghane changes the Go frontend to use allocate for non-escaping new expressions. Previously it was using a temporary variable, which failed when the new expression was in a loop. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian 2015-04-30 Chris Manghane * go-gcc.cc (Gcc_backend::stack_allocation_expression): New method. --001a1144140824c8a00514f72821 Content-Type: text/plain; charset=US-ASCII; name="foo.txt" Content-Disposition: attachment; filename="foo.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i94n2ujr0 Content-length: 5795 SW5kZXg6IGdvLWdjYy5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBn by1nY2MuY2MJKHJldmlzaW9uIDIyMjY1NikKKysrIGdvLWdjYy5jYwkod29y a2luZyBjb3B5KQpAQCAtMzI0LDYgKzMyNCw5IEBAIGNsYXNzIEdjY19iYWNr ZW5kIDogcHVibGljIEJhY2tlbmQKICAgY2FsbF9leHByZXNzaW9uKEJleHBy ZXNzaW9uKiBmbiwgY29uc3Qgc3RkOjp2ZWN0b3I8QmV4cHJlc3Npb24qPiYg YXJncywKICAgICAgICAgICAgICAgICAgIEJleHByZXNzaW9uKiBzdGF0aWNf Y2hhaW4sIExvY2F0aW9uKTsKIAorICBCZXhwcmVzc2lvbioKKyAgc3RhY2tf YWxsb2NhdGlvbl9leHByZXNzaW9uKGludDY0X3Qgc2l6ZSwgTG9jYXRpb24p OworCiAgIC8vIFN0YXRlbWVudHMuCiAKICAgQnN0YXRlbWVudCoKQEAgLTE4 ODQsNiArMTg4NywxNyBAQCBHY2NfYmFja2VuZDo6Y2FsbF9leHByZXNzaW9u KEJleHByZXNzaW9uCiAgIHJldHVybiB0aGlzLT5tYWtlX2V4cHJlc3Npb24o cmV0KTsKIH0KIAorLy8gUmV0dXJuIGFuIGV4cHJlc3Npb24gdGhhdCBhbGxv Y2F0ZXMgU0laRSBieXRlcyBvbiB0aGUgc3RhY2suCisKK0JleHByZXNzaW9u KgorR2NjX2JhY2tlbmQ6OnN0YWNrX2FsbG9jYXRpb25fZXhwcmVzc2lvbihp bnQ2NF90IHNpemUsIExvY2F0aW9uIGxvY2F0aW9uKQoreworICB0cmVlIGFs bG9jYSA9IGJ1aWx0aW5fZGVjbF9leHBsaWNpdChCVUlMVF9JTl9BTExPQ0Ep OworICB0cmVlIHNpemVfdHJlZSA9IGJ1aWxkX2ludF9jc3QoaW50ZWdlcl90 eXBlX25vZGUsIHNpemUpOworICB0cmVlIHJldCA9IGJ1aWxkX2NhbGxfZXhw cl9sb2MobG9jYXRpb24uZ2NjX2xvY2F0aW9uKCksIGFsbG9jYSwgMSwgc2l6 ZV90cmVlKTsKKyAgcmV0dXJuIHRoaXMtPm1ha2VfZXhwcmVzc2lvbihyZXQp OworfQorCiAvLyBBbiBleHByZXNzaW9uIGFzIGEgc3RhdGVtZW50LgogCiBC c3RhdGVtZW50KgpJbmRleDogZ29mcm9udGVuZC9iYWNrZW5kLmgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ29mcm9udGVuZC9iYWNrZW5kLmgJKHJl dmlzaW9uIDIyMjY1NikKKysrIGdvZnJvbnRlbmQvYmFja2VuZC5oCSh3b3Jr aW5nIGNvcHkpCkBAIC0zNzcsNiArMzc3LDEwIEBAIGNsYXNzIEJhY2tlbmQK ICAgY2FsbF9leHByZXNzaW9uKEJleHByZXNzaW9uKiBmbiwgY29uc3Qgc3Rk Ojp2ZWN0b3I8QmV4cHJlc3Npb24qPiYgYXJncywKIAkJICBCZXhwcmVzc2lv biogc3RhdGljX2NoYWluLCBMb2NhdGlvbikgPSAwOwogCisgIC8vIFJldHVy biBhbiBleHByZXNzaW9uIHRoYXQgYWxsb2NhdGVzIFNJWkUgYnl0ZXMgb24g dGhlIHN0YWNrLgorICB2aXJ0dWFsIEJleHByZXNzaW9uKgorICBzdGFja19h bGxvY2F0aW9uX2V4cHJlc3Npb24oaW50NjRfdCBzaXplLCBMb2NhdGlvbikg PSAwOworCiAgIC8vIFN0YXRlbWVudHMuCiAKICAgLy8gQ3JlYXRlIGFuIGVy cm9yIHN0YXRlbWVudC4gIFRoaXMgaXMgdXNlZCBmb3IgY2FzZXMgd2hpY2gg c2hvdWxkCkluZGV4OiBnb2Zyb250ZW5kL2V4cHJlc3Npb25zLmNjCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdvZnJvbnRlbmQvZXhwcmVzc2lvbnMu Y2MJKHJldmlzaW9uIDIyMjY1NikKKysrIGdvZnJvbnRlbmQvZXhwcmVzc2lv bnMuY2MJKHdvcmtpbmcgY29weSkKQEAgLTExNDI4LDIwICsxMTQyOCw2IEBA IEFsbG9jYXRpb25fZXhwcmVzc2lvbjo6ZG9fY29weSgpCiAgIHJldHVybiBh bGxvYzsKIH0KIAotRXhwcmVzc2lvbioKLUFsbG9jYXRpb25fZXhwcmVzc2lv bjo6ZG9fZmxhdHRlbihHb2dvKiwgTmFtZWRfb2JqZWN0KiwKLQkJCQkgIFN0 YXRlbWVudF9pbnNlcnRlciogaW5zZXJ0ZXIpCi17Ci0gIGlmICh0aGlzLT5h bGxvY2F0ZV9vbl9zdGFja18pCi0gICAgewotICAgICAgdGhpcy0+c3RhY2tf dGVtcF8gPSBTdGF0ZW1lbnQ6Om1ha2VfdGVtcG9yYXJ5KHRoaXMtPnR5cGVf LCBOVUxMLAotCQkJCQkJICAgIHRoaXMtPmxvY2F0aW9uKCkpOwotICAgICAg dGhpcy0+c3RhY2tfdGVtcF8tPnNldF9pc19hZGRyZXNzX3Rha2VuKCk7Ci0g ICAgICBpbnNlcnRlci0+aW5zZXJ0KHRoaXMtPnN0YWNrX3RlbXBfKTsKLSAg ICB9Ci0gIHJldHVybiB0aGlzOwotfQotCiAvLyBSZXR1cm4gdGhlIGJhY2tl bmQgcmVwcmVzZW50YXRpb24gZm9yIGFuIGFsbG9jYXRpb24gZXhwcmVzc2lv bi4KIAogQmV4cHJlc3Npb24qCkBAIC0xMTQ1MCwxNyArMTE0MzYsMTYgQEAg QWxsb2NhdGlvbl9leHByZXNzaW9uOjpkb19nZXRfYmFja2VuZChUcgogICBH b2dvKiBnb2dvID0gY29udGV4dC0+Z29nbygpOwogICBMb2NhdGlvbiBsb2Mg PSB0aGlzLT5sb2NhdGlvbigpOwogCi0gIGlmICh0aGlzLT5zdGFja190ZW1w XyAhPSBOVUxMKQorICBCdHlwZSogYnR5cGUgPSB0aGlzLT50eXBlXy0+Z2V0 X2JhY2tlbmQoZ29nbyk7CisgIGlmICh0aGlzLT5hbGxvY2F0ZV9vbl9zdGFj a18pCiAgICAgewotICAgICAgRXhwcmVzc2lvbiogcmVmID0KLQlFeHByZXNz aW9uOjptYWtlX3RlbXBvcmFyeV9yZWZlcmVuY2UodGhpcy0+c3RhY2tfdGVt cF8sIGxvYyk7Ci0gICAgICByZWYgPSBFeHByZXNzaW9uOjptYWtlX3VuYXJ5 KE9QRVJBVE9SX0FORCwgcmVmLCBsb2MpOwotICAgICAgcmV0dXJuIHJlZi0+ Z2V0X2JhY2tlbmQoY29udGV4dCk7CisgICAgICBpbnQ2NF90IHNpemUgPSBn b2dvLT5iYWNrZW5kKCktPnR5cGVfc2l6ZShidHlwZSk7CisgICAgICByZXR1 cm4gZ29nby0+YmFja2VuZCgpLT5zdGFja19hbGxvY2F0aW9uX2V4cHJlc3Np b24oc2l6ZSwgbG9jKTsKICAgICB9CiAKICAgQmV4cHJlc3Npb24qIHNwYWNl ID0gCiAgICAgZ29nby0+YWxsb2NhdGVfbWVtb3J5KHRoaXMtPnR5cGVfLCBs b2MpLT5nZXRfYmFja2VuZChjb250ZXh0KTsKLSAgQnR5cGUqIHBidHlwZSA9 IGdvZ28tPmJhY2tlbmQoKS0+cG9pbnRlcl90eXBlKHRoaXMtPnR5cGVfLT5n ZXRfYmFja2VuZChnb2dvKSk7CisgIEJ0eXBlKiBwYnR5cGUgPSBnb2dvLT5i YWNrZW5kKCktPnBvaW50ZXJfdHlwZShidHlwZSk7CiAgIHJldHVybiBnb2dv LT5iYWNrZW5kKCktPmNvbnZlcnRfZXhwcmVzc2lvbihwYnR5cGUsIHNwYWNl LCBsb2MpOwogfQogCkluZGV4OiBnb2Zyb250ZW5kL2V4cHJlc3Npb25zLmgK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ29mcm9udGVuZC9leHByZXNz aW9ucy5oCShyZXZpc2lvbiAyMjI2NTYpCisrKyBnb2Zyb250ZW5kL2V4cHJl c3Npb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3ODYsNyArMjc4Niw3IEBA IGNsYXNzIEFsbG9jYXRpb25fZXhwcmVzc2lvbiA6IHB1YmxpYyBFeHAKICBw dWJsaWM6CiAgIEFsbG9jYXRpb25fZXhwcmVzc2lvbihUeXBlKiB0eXBlLCBM b2NhdGlvbiBsb2NhdGlvbikKICAgICA6IEV4cHJlc3Npb24oRVhQUkVTU0lP Tl9BTExPQ0FUSU9OLCBsb2NhdGlvbiksCi0gICAgICB0eXBlXyh0eXBlKSwg YWxsb2NhdGVfb25fc3RhY2tfKGZhbHNlKSwgc3RhY2tfdGVtcF8oTlVMTCkK KyAgICAgIHR5cGVfKHR5cGUpLCBhbGxvY2F0ZV9vbl9zdGFja18oZmFsc2Up CiAgIHsgfQogCiAgIHZvaWQKQEAgLTI4MDcsOSArMjgwNyw2IEBAIGNsYXNz IEFsbG9jYXRpb25fZXhwcmVzc2lvbiA6IHB1YmxpYyBFeHAKICAgRXhwcmVz c2lvbioKICAgZG9fY29weSgpOwogCi0gIEV4cHJlc3Npb24qCi0gIGRvX2Zs YXR0ZW4oR29nbyosIE5hbWVkX29iamVjdCosIFN0YXRlbWVudF9pbnNlcnRl ciopOwotCiAgIEJleHByZXNzaW9uKgogICBkb19nZXRfYmFja2VuZChUcmFu c2xhdGVfY29udGV4dCopOwogCkBAIC0yODIxLDkgKzI4MTgsNiBAQCBjbGFz cyBBbGxvY2F0aW9uX2V4cHJlc3Npb24gOiBwdWJsaWMgRXhwCiAgIFR5cGUq IHR5cGVfOwogICAvLyBXaGV0aGVyIG9yIG5vdCB0aGlzIGlzIGEgc3RhY2sg YWxsb2NhdGlvbi4KICAgYm9vbCBhbGxvY2F0ZV9vbl9zdGFja187Ci0gIC8v IElmIHRoaXMgbWVtb3J5IGlzIHN0YWNrIGFsbG9jYXRlZCwgaXQgd2lsbCB1 c2UgdGhlIGFkZHJlc3Mgb2YgU1RBQ0tfVEVNUC4KLSAgLy8gT3RoZXJ3aXNl LCBTVEFDS19URU1QIGlzIE5VTEwuCi0gIFRlbXBvcmFyeV9zdGF0ZW1lbnQq IHN0YWNrX3RlbXBfOwogfTsKIAogLy8gQ29uc3RydWN0IGEgc3RydWN0Lgo= --001a1144140824c8a00514f72821--