From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 113490 invoked by alias); 15 Apr 2015 07:48:33 -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 113474 invoked by uid 89); 15 Apr 2015 07:48:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f182.google.com Received: from mail-pd0-f182.google.com (HELO mail-pd0-f182.google.com) (209.85.192.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 15 Apr 2015 07:48:30 +0000 Received: by pdea3 with SMTP id a3so42854294pde.3 for ; Wed, 15 Apr 2015 00:48:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:content-type; bh=+VWaS0QirvWq7VnXlZEQpbdRciXnUykBil/9z1u9o7c=; b=KAuOO7HbMZtniSHQkgerhwi7ut8q67m9jOmY1r6adpc41+5AoMcrZbn30ez37StnSG PGvmzqc3iwomQq5LVhdn3rW9RKtylcswhNvgQ+5UgPJOm6Wpop+uSZ0EXAH9Mkcq3sxc A59067XAtckZ8tzs8xU+Vf8bX+I+SqcdKx5EFCoodXBltxq1oJgBuQjQsJ3p5rgLny95 A+5FrN8jyjh1FsG9+wGhWIhaMo562KwaZ8615fo3Wty/8xhA/h7PzufRMWcVXFlP7f1c V8gkPYRbdy9ZsmC6whMEmdTkUSaGhVPdBicst+de7yzg1gN+fTEZNKOiQhXACY5RKHD+ DLQg== X-Gm-Message-State: ALoCoQnq85ETRbz46gZV8WfYqAxgK19CEVYJZco2moOIPKsGAdZHG6IC4JzFgZPm4A7HntGRwm3H X-Received: by 10.70.65.39 with SMTP id u7mr43960286pds.11.1429084108483; Wed, 15 Apr 2015 00:48:28 -0700 (PDT) Received: from [10.1.1.5] (58-6-183-210.dyn.iinet.net.au. [58.6.183.210]) by mx.google.com with ESMTPSA id gy3sm3209906pbb.42.2015.04.15.00.48.25 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Apr 2015 00:48:27 -0700 (PDT) Message-ID: <552E17C7.80800@linaro.org> Date: Wed, 15 Apr 2015 07:48:00 -0000 From: Kugan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: "gcc-patches@gcc.gnu.org" CC: Ramana Radhakrishnan , Richard Earnshaw , Kyrill Tkachov Subject: [ARM][PR65768] Keep constants in register when expanding Content-Type: multipart/mixed; boundary="------------000609040003090705090101" X-IsSubscribed: yes X-SW-Source: 2015-04/txt/msg00724.txt.bz2 This is a multi-part message in MIME format. --------------000609040003090705090101 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 1092 As mentioned in PR65768, ARM gcc generates suboptimal code for constant Uses in loop. Part of the reason is that ARM back-end is splitting constants during expansion of RTL, making it hard for the RTL optimization passes to optimize it. Zhenqiang posted a patch at https://gcc.gnu.org/ml/gcc-patches/2014-08/msg00325.html to fix this As mentioned in PR65768, I tried with few more test-cases and enhanced it. Regression tested on arm-none-linux-gnu and no new regressions. Is this OK for trunk? Thanks, Kugan gcc/ChangeLog: 2015-04-15 Kugan Vivekanandarajah Zhenqiang Chen PR target/65768 * config/arm/arm-protos.h (const_ok_for_split): New definition. * config/arm/arm.c (const_ok_for_split): New function. * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some large constants in register instead of splitting them. gcc/testsuite/ChangeLog: 2015-04-15 Kugan Vivekanandarajah Zhenqiang Chen PR target/65768 * gcc.target/arm/maskdata.c: New test. --------------000609040003090705090101 Content-Type: text/plain; charset=UTF-8; name="arm_split.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="arm_split.txt" Content-length: 8435 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS1wcm90b3MuaCBiL2dj Yy9jb25maWcvYXJtL2FybS1wcm90b3MuaAppbmRleCAxNmViODU0Li4xYjEz MWE5IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgK KysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oCkBAIC01OCw2ICs1 OCw3IEBAIGV4dGVybiBib29sIGFybV9tb2Rlc190aWVhYmxlX3AgKG1hY2hp bmVfbW9kZSwgbWFjaGluZV9tb2RlKTsKIGV4dGVybiBpbnQgY29uc3Rfb2tf Zm9yX2FybSAoSE9TVF9XSURFX0lOVCk7CiBleHRlcm4gaW50IGNvbnN0X29r X2Zvcl9vcCAoSE9TVF9XSURFX0lOVCwgZW51bSBydHhfY29kZSk7CiBleHRl cm4gaW50IGNvbnN0X29rX2Zvcl9kaW1vZGVfb3AgKEhPU1RfV0lERV9JTlQs IGVudW0gcnR4X2NvZGUpOworZXh0ZXJuIGludCBjb25zdF9va19mb3Jfc3Bs aXQgKEhPU1RfV0lERV9JTlQsIGVudW0gcnR4X2NvZGUpOwogZXh0ZXJuIGlu dCBhcm1fc3BsaXRfY29uc3RhbnQgKFJUWF9DT0RFLCBtYWNoaW5lX21vZGUs IHJ0eCwKIAkJCSAgICAgICBIT1NUX1dJREVfSU5ULCBydHgsIHJ0eCwgaW50 KTsKIGV4dGVybiBpbnQgbGVnaXRpbWF0ZV9waWNfb3BlcmFuZF9wIChydHgp OwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmMgYi9nY2MvY29u ZmlnL2FybS9hcm0uYwppbmRleCA4ZmQxMzg4Li4wYzEzNjY2IDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2FybS9hcm0uYworKysgYi9nY2MvY29uZmlnL2Fy bS9hcm0uYwpAQCAtMzc0NSw2ICszNzQ1LDQxIEBAIGNvbnN0X29rX2Zvcl9k aW1vZGVfb3AgKEhPU1RfV0lERV9JTlQgaSwgZW51bSBydHhfY29kZSBjb2Rl KQogICAgIH0KIH0KIAorLyogUmV0dXJuIHRydWUgaWYgSSBpcyBhIHZhbGlk IGNvbnN0YW50IGZvciBzcGxpdCB3aXRoIHRoZSBvcGVyYXRpb24gQ09ERS4K KyAgIFRoZSBjb25kaXRpb24gc2hvdWxkIGFsaWduIHdpdGggdGhlIGNvbnN0 cmFpbiBvZiB0aGUgY29ycmVzcG9uZGluZworICAgZGVmaW5lX2luc25fYW5k X3NwbGl0IHBhdHRlcm4gdG8gbWFrZSBzdXJlIGxhdGVyIHBhc3MgY2FuIG9w dGltaXplCisgICB0aGUgY29uc3RhbnRzLiAgKi8KK2ludAorY29uc3Rfb2tf Zm9yX3NwbGl0IChIT1NUX1dJREVfSU5UIGksIGVudW0gcnR4X2NvZGUgY29k ZSkKK3sKKyAgaWYgKG9wdGltaXplIDwgMgorICAgICAgfHwgIWNhbl9jcmVh dGVfcHNldWRvX3AgKCkKKyAgICAgIHx8IGNvbnN0X29rX2Zvcl9hcm0gKGkp CisJIC8qIFNpbmNlIGV4cGFuZCBwYXNzIGFsd2F5cyB1c2VzICJzaWduLWV4 dGVuZCIgdG8gZ2V0IHRoZSB2YWx1ZQorCSAgICAodHJ1bmNfaW50X2Zvcl9t b2RlIGNhbGxlZCBmcm9tIGltbWVkX3dpZGVfaW50X2NvbnN0KSBmb3IgcnRs LAorCSAgICBhbmQgbG9ncyBzaG93IG1vc3QgbmVnYXRpdmUgdmFsdWVzIGFy ZSBVTlNJR05FRCB3aGVuIHRoZXkgYXJlCisJICAgIFRSRUUgbm9kZS4gQW5k IGNvbWJpbmUgcGFzcyBpcyBzbWFydCBlbm91Z2ggdG8gcmVjb3ZlciB0aGUK KwkgICAgbmVnYXRpdmUgdmFsdWUgdG8gcG9zaXRpdmUgdmFsdWUuICAqLwor ICAgICAgfHwgKChpIDwgMCkgJiYgY29uc3Rfb2tfZm9yX2FybSAoLWkpKSkK KyAgICByZXR1cm4gMTsKKworICBzd2l0Y2ggKGNvZGUpCisgICAgeworICAg IGNhc2UgQU5EOgorICAgICAgLyogemVyb19leHRlbmRoaSBpbnN0cnVjdGlv biBpcyBlZmZpY2llbnQuICAqLworICAgICAgcmV0dXJuIGNvbnN0X29rX2Zv cl9hcm0gKH5pKSB8fCAoaSA9PSAweGZmZmYpOworCisgICAgY2FzZSBJT1I6 CisgICAgICByZXR1cm4gVEFSR0VUX1RIVU1CMiAmJiBjb25zdF9va19mb3Jf YXJtICh+aSk7CisKKyAgICBjYXNlIFNFVDoKKyAgICAgIHJldHVybiBjb25z dF9va19mb3JfYXJtIChpKSB8fCBjb25zdF9va19mb3JfYXJtICh+aSk7CisK KyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIDE7CisgICAgfQorfQorCiAv KiBFbWl0IGEgc2VxdWVuY2Ugb2YgaW5zbnMgdG8gaGFuZGxlIGEgbGFyZ2Ug Y29uc3RhbnQuCiAgICBDT0RFIGlzIHRoZSBjb2RlIG9mIHRoZSBvcGVyYXRp b24gcmVxdWlyZWQsIGl0IGNhbiBiZSBhbnkgb2YgU0VULCBQTFVTLAogICAg SU9SLCBBTkQsIFhPUiwgTUlOVVM7CmRpZmYgLS1naXQgYS9nY2MvY29uZmln L2FybS9hcm0ubWQgYi9nY2MvY29uZmlnL2FybS9hcm0ubWQKaW5kZXggMTY0 YWMxMy4uYTE2OTc3NSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJt Lm1kCisrKyBiL2djYy9jb25maWcvYXJtL2FybS5tZApAQCAtMTE2NCwxMCAr MTE2NCwxNiBAQAogICAgIHsKICAgICAgIGlmIChUQVJHRVRfMzJCSVQpCiAg ICAgICAgIHsKLSAgICAgICAgICBhcm1fc3BsaXRfY29uc3RhbnQgKE1JTlVT LCBTSW1vZGUsIE5VTExfUlRYLAotCSAgICAgICAgICAgICAgICAgICAgICBJ TlRWQUwgKG9wZXJhbmRzWzFdKSwgb3BlcmFuZHNbMF0sCi0JICAJCSAgICAg IG9wZXJhbmRzWzJdLCBvcHRpbWl6ZSAmJiBjYW5fY3JlYXRlX3BzZXVkb19w ICgpKTsKLSAgICAgICAgICBET05FOworCSAgaWYgKCFjb25zdF9va19mb3Jf c3BsaXQgKElOVFZBTCAob3BlcmFuZHNbMV0pLCBNSU5VUykpCisJICAgIG9w ZXJhbmRzWzFdID0gZm9yY2VfcmVnIChTSW1vZGUsIG9wZXJhbmRzWzFdKTsK KwkgIGVsc2UKKwkgICAgeworCSAgICAgIGFybV9zcGxpdF9jb25zdGFudCAo TUlOVVMsIFNJbW9kZSwgTlVMTF9SVFgsCisJCQkJICBJTlRWQUwgKG9wZXJh bmRzWzFdKSwgb3BlcmFuZHNbMF0sCisJCQkJICBvcGVyYW5kc1syXSwKKwkJ CQkgIG9wdGltaXplICYmIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpOworCSAg ICAgIERPTkU7CisJICAgIH0KIAl9CiAgICAgICBlbHNlIC8qIFRBUkdFVF9U SFVNQjEgKi8KICAgICAgICAgb3BlcmFuZHNbMV0gPSBmb3JjZV9yZWcgKFNJ bW9kZSwgb3BlcmFuZHNbMV0pOwpAQCAtMjA3OCwxNCArMjA4NCwxOSBAQAog CSAgICAgIG9wZXJhbmRzWzFdID0gY29udmVydF90b19tb2RlIChRSW1vZGUs IG9wZXJhbmRzWzFdLCAxKTsKIAkgICAgICBlbWl0X2luc24gKGdlbl90aHVt YjJfemVyb19leHRlbmRxaXNpMl92NiAob3BlcmFuZHNbMF0sCiAJCQkJCQkJ IG9wZXJhbmRzWzFdKSk7CisJICAgICAgRE9ORTsKIAkgICAgfQorCSAgZWxz ZSBpZiAoIWNvbnN0X29rX2Zvcl9zcGxpdCAoSU5UVkFMIChvcGVyYW5kc1sy XSksIEFORCkpCisJICAgIG9wZXJhbmRzWzJdID0gZm9yY2VfcmVnIChTSW1v ZGUsIG9wZXJhbmRzWzJdKTsKIAkgIGVsc2UKLQkgICAgYXJtX3NwbGl0X2Nv bnN0YW50IChBTkQsIFNJbW9kZSwgTlVMTF9SVFgsCi0JCQkJSU5UVkFMIChv cGVyYW5kc1syXSksIG9wZXJhbmRzWzBdLAotCQkJCW9wZXJhbmRzWzFdLAot CQkJCW9wdGltaXplICYmIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpOworCSAg ICB7CisJICAgICAgYXJtX3NwbGl0X2NvbnN0YW50IChBTkQsIFNJbW9kZSwg TlVMTF9SVFgsCisJCQkJICBJTlRWQUwgKG9wZXJhbmRzWzJdKSwgb3BlcmFu ZHNbMF0sCisJCQkJICBvcGVyYW5kc1sxXSwKKwkJCQkgIG9wdGltaXplICYm IGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpOwogCi0gICAgICAgICAgRE9ORTsK KwkgICAgICBET05FOworCSAgICB9CiAgICAgICAgIH0KICAgICB9CiAgIGVs c2UgLyogVEFSR0VUX1RIVU1CMSAqLwpAQCAtMjg4NCwxMCArMjg5NSwxNiBA QAogICAgIHsKICAgICAgIGlmIChUQVJHRVRfMzJCSVQpCiAgICAgICAgIHsK LSAgICAgICAgICBhcm1fc3BsaXRfY29uc3RhbnQgKElPUiwgU0ltb2RlLCBO VUxMX1JUWCwKLQkgICAgICAgICAgICAgICAgICAgICAgSU5UVkFMIChvcGVy YW5kc1syXSksIG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwKLQkJCSAgICAg IG9wdGltaXplICYmIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpOwotICAgICAg ICAgIERPTkU7CisJICBpZiAoIWNvbnN0X29rX2Zvcl9zcGxpdCAoSU5UVkFM IChvcGVyYW5kc1syXSksIElPUikpCisJICAgIG9wZXJhbmRzWzJdID0gZm9y Y2VfcmVnIChTSW1vZGUsIG9wZXJhbmRzWzJdKTsKKwkgIGVsc2UKKwkgICAg eworCSAgICAgIGFybV9zcGxpdF9jb25zdGFudCAoSU9SLCBTSW1vZGUsIE5V TExfUlRYLAorCQkJCSAgSU5UVkFMIChvcGVyYW5kc1syXSksIG9wZXJhbmRz WzBdLAorCQkJCSAgb3BlcmFuZHNbMV0sCisJCQkJICBvcHRpbWl6ZSAmJiBj YW5fY3JlYXRlX3BzZXVkb19wICgpKTsKKwkgICAgICBET05FOworCSAgICB9 CiAJfQogICAgICAgZWxzZSAvKiBUQVJHRVRfVEhVTUIxICovCiAgICAgICAg IHsKQEAgLTMwNTQsMTAgKzMwNzEsMTYgQEAKICAgICB7CiAgICAgICBpZiAo VEFSR0VUXzMyQklUKQogICAgICAgICB7Ci0gICAgICAgICAgYXJtX3NwbGl0 X2NvbnN0YW50IChYT1IsIFNJbW9kZSwgTlVMTF9SVFgsCi0JICAgICAgICAg ICAgICAgICAgICAgIElOVFZBTCAob3BlcmFuZHNbMl0pLCBvcGVyYW5kc1sw XSwgb3BlcmFuZHNbMV0sCi0JCQkgICAgICBvcHRpbWl6ZSAmJiBjYW5fY3Jl YXRlX3BzZXVkb19wICgpKTsKLSAgICAgICAgICBET05FOworCSAgaWYgKCFj b25zdF9va19mb3Jfc3BsaXQgKElOVFZBTCAob3BlcmFuZHNbMl0pLCBYT1Ip KQorCSAgICBvcGVyYW5kc1syXSA9IGZvcmNlX3JlZyAoU0ltb2RlLCBvcGVy YW5kc1syXSk7CisJICBlbHNlCisJICAgIHsKKwkgICAgICBhcm1fc3BsaXRf Y29uc3RhbnQgKFhPUiwgU0ltb2RlLCBOVUxMX1JUWCwKKwkJCQkgIElOVFZB TCAob3BlcmFuZHNbMl0pLCBvcGVyYW5kc1swXSwKKwkJCQkgIG9wZXJhbmRz WzFdLAorCQkJCSAgb3B0aW1pemUgJiYgY2FuX2NyZWF0ZV9wc2V1ZG9fcCAo KSk7CisJICAgICAgRE9ORTsKKwkgICAgfQogCX0KICAgICAgIGVsc2UgLyog VEFSR0VUX1RIVU1CMSAqLwogICAgICAgICB7CkBAIC01NTU0LDEwICs1NTc3 LDE4IEBACiAgICAgICAgICAgJiYgIShjb25zdF9va19mb3JfYXJtIChJTlRW QUwgKG9wZXJhbmRzWzFdKSkKICAgICAgICAgICAgICAgIHx8IGNvbnN0X29r X2Zvcl9hcm0gKH5JTlRWQUwgKG9wZXJhbmRzWzFdKSkpKQogICAgICAgICB7 Ci0gICAgICAgICAgIGFybV9zcGxpdF9jb25zdGFudCAoU0VULCBTSW1vZGUs IE5VTExfUlRYLAotCSAgICAgICAgICAgICAgICAgICAgICAgSU5UVkFMIChv cGVyYW5kc1sxXSksIG9wZXJhbmRzWzBdLCBOVUxMX1JUWCwKLQkJCSAgICAg ICBvcHRpbWl6ZSAmJiBjYW5fY3JlYXRlX3BzZXVkb19wICgpKTsKLSAgICAg ICAgICBET05FOworCSAgIGlmICghY29uc3Rfb2tfZm9yX3NwbGl0IChJTlRW QUwgKG9wZXJhbmRzWzFdKSwgU0VUKSkKKwkgICAgIHsKKwkJZW1pdF9pbnNu IChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIG9wZXJhbmRzWzBdLCBvcGVyYW5k c1sxXSkpOworCQlET05FOworCSAgICAgfQorCSAgZWxzZQorCSAgICAgewor CQlhcm1fc3BsaXRfY29uc3RhbnQgKFNFVCwgU0ltb2RlLCBOVUxMX1JUWCwK KwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5UVkFMIChvcGVyYW5k c1sxXSksIG9wZXJhbmRzWzBdLCBOVUxMX1JUWCwKKwkJCSAgICAgICAgICAg IG9wdGltaXplICYmIGNhbl9jcmVhdGVfcHNldWRvX3AgKCkpOworCQlET05F OworCSAgICAgfQogICAgICAgICB9CiAgICAgfQogICBlbHNlIC8qIFRBUkdF VF9USFVNQjEuLi4gICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYXJtL21hc2tkYXRhLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYXJtL21hc2tkYXRhLmMKaW5kZXggZTY5ZGUyOS4uNmQ2YmIzOSAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tYXNr ZGF0YS5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbWFz a2RhdGEuYwpAQCAtMCwwICsxLDE1IEBACisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworLyogeyBkZy1vcHRpb25zICIgLU8yIC1mbm8tZ2NzZSAiIH0gICov CisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdGh1bWIy X29rIH0gKi8KKworI2RlZmluZSBNQVNLIDB4ZmYwMGZmCit2b2lkIG1hc2tk YXRhIChpbnQgKiBkYXRhLCBpbnQgbGVuKQoreworICAgaW50IGkgPSBsZW47 CisgICBmb3IgKDsgaSA+IDA7IGkgLT0gMikKKyAgICB7CisgICAgICBkYXRh W2ldICY9IE1BU0s7CisgICAgICBkYXRhW2kgKyAxXSAmPSBNQVNLOworICAg IH0KK30KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIjY1 MjgwIiB9IH0gKi8K --------------000609040003090705090101--