From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 34878 invoked by alias); 10 Mar 2019 09:42:32 -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 34867 invoked by uid 89); 10 Mar 2019 09:42:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KAM_MANYTO,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=bits_per_unit, upward, BITS_PER_UNIT, sk:arm-lin X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-oln040092066066.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (40.92.66.66) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 10 Mar 2019 09:42:29 +0000 Received: from VE1EUR01FT038.eop-EUR01.prod.protection.outlook.com (10.152.2.53) by VE1EUR01HT124.eop-EUR01.prod.protection.outlook.com (10.152.3.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1686.19; Sun, 10 Mar 2019 09:42:27 +0000 Received: from AM6PR07MB4037.eurprd07.prod.outlook.com (10.152.2.58) by VE1EUR01FT038.mail.protection.outlook.com (10.152.3.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.19 via Frontend Transport; Sun, 10 Mar 2019 09:42:26 +0000 Received: from AM6PR07MB4037.eurprd07.prod.outlook.com ([fe80::2929:d3a3:182e:4219]) by AM6PR07MB4037.eurprd07.prod.outlook.com ([fe80::2929:d3a3:182e:4219%2]) with mapi id 15.20.1709.011; Sun, 10 Mar 2019 09:42:26 +0000 From: Bernd Edlinger To: "gcc-patches@gcc.gnu.org" , Richard Biener , Richard Earnshaw , "Ramana Radhakrishnan" , Kyrill Tkachov , Eric Botcazou Subject: [PATCHv2] Fix not 8-byte aligned ldrd/strd on ARMv5 (PR 89544) Date: Sun, 10 Mar 2019 12:51:00 -0000 Message-ID: x-microsoft-original-message-id: <08d3c99b-da5c-bfe5-9237-793f34054a6f@hotmail.de> Content-Type: multipart/mixed; boundary="_002_AM6PR07MB4037775DF79E0229DCCA425AE44F0AM6PR07MB4037eurp_" MIME-Version: 1.0 X-SW-Source: 2019-03/txt/msg00439.txt.bz2 --_002_AM6PR07MB4037775DF79E0229DCCA425AE44F0AM6PR07MB4037eurp_ Content-Type: text/plain; charset="Windows-1252" Content-ID: <59BE92831EE88B44B4BB8B5E45127DD4@eurprd07.prod.outlook.com> Content-Transfer-Encoding: quoted-printable Content-length: 1554 Hi, This patch is an update to the previous patch, which takes into account that the middle-end is not supposed to use the unaligned DI value directly which was passed in an unaligned stack slot due to the AAPCS parameter passing ru= les. The patch works by changing use_register_for_decl to return false if the incoming RTL is not sufficiently aligned on a STRICT_ALIGNMENT target, as if the address of the parameter was taken (which is TREE_ADDRESSABLE). So not taking the address of the parameter is a necessary condition for the wrong-code in PR 89544. It works together with this check in assign_parm_adjust_stack_rtl: /* If we can't trust the parm stack slot to be aligned enough for its ultimate type, don't use that slot after entry. We'll make another stack slot, if we need one. */ if (stack_parm && ((STRICT_ALIGNMENT && GET_MODE_ALIGNMENT (data->nominal_mode) > MEM_ALIGN (stack_pa= rm)) ... stack_param =3D NULL This makes assign_parms use assign_parm_setup_stack instead of assign_parm_setup_reg, and the latter does assign a suitably aligned stack slot, because stack_param =3D=3D NULL by now, and uses emit_block_move which avoids the issue with the back-end. Additionally, to prevent unnecessary performance regressions, assign_parm_find_stack_rtl is enhanced to make use of a possible larger alignment if the parameter was passed in an aligned stack slot without the ABI requiring it. Bootstrapped and reg-tested with all languages on arm-linux-gnueabihf. Is it OK for trunk? Thanks Bernd. --_002_AM6PR07MB4037775DF79E0229DCCA425AE44F0AM6PR07MB4037eurp_ Content-Type: text/x-patch; name="patch-arm-align-abi.diff" Content-Description: patch-arm-align-abi.diff Content-Disposition: attachment; filename="patch-arm-align-abi.diff"; size=3581; creation-date="Sun, 10 Mar 2019 09:42:26 GMT"; modification-date="Sun, 10 Mar 2019 09:42:26 GMT" Content-ID: <5CFB52F2396CBE4C9B071AA105D7D73D@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 4856 MjAxOS0wMy0wNSAgQmVybmQgRWRsaW5nZXIgIDxiZXJuZC5lZGxpbmdlckBo b3RtYWlsLmRlPgoKCVBSIG1pZGRsZS1lbmQvODk1NDQKCSogZnVuY3Rpb24u YyAodXNlX3JlZ2lzdGVyX2Zvcl9kZWNsKTogQXZvaWQgdXNpbmcgdW5hbGln bmVkIHN0YWNrCgl2YWx1ZXMgb24gc3RyaWN0IGFsaWdubWVudCB0YXJnZXRz LgoJKGFzc2lnbl9wYXJtX2ZpbmRfc3RhY2tfcnRsKTogVXNlIGxhcmdlciBh bGlnbm1lbnQgd2hlbiBwb3NzaWJsZS4KCnRlc3RzdWl0ZToKMjAxOS0wMy0w NSAgQmVybmQgRWRsaW5nZXIgIDxiZXJuZC5lZGxpbmdlckBob3RtYWlsLmRl PgoKCVBSIG1pZGRsZS1lbmQvODk1NDQKCSogZ2NjLnRhcmdldC9hcm0vdW5h bGlnbmVkLWFyZ3VtZW50LTEuYzogTmV3IHRlc3QuCgkqIGdjYy50YXJnZXQv YXJtL3VuYWxpZ25lZC1hcmd1bWVudC0yLmM6IE5ldyB0ZXN0LgoKSW5kZXg6 IGdjYy9mdW5jdGlvbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdj Yy9mdW5jdGlvbi5jCShyZXZpc2lvbiAyNjkyNjQpCisrKyBnY2MvZnVuY3Rp b24uYwkod29ya2luZyBjb3B5KQpAQCAtMjIxMCw2ICsyMjEwLDEyIEBAIHVz ZV9yZWdpc3Rlcl9mb3JfZGVjbCAoY29uc3RfdHJlZSBkZWNsKQogICBpZiAo REVDTF9NT0RFIChkZWNsKSA9PSBCTEttb2RlKQogICAgIHJldHVybiBmYWxz ZTsKIAorICBpZiAoU1RSSUNUX0FMSUdOTUVOVCAmJiBUUkVFX0NPREUgKGRl Y2wpID09IFBBUk1fREVDTAorICAgICAgJiYgREVDTF9JTkNPTUlOR19SVEwg KGRlY2wpICYmIE1FTV9QIChERUNMX0lOQ09NSU5HX1JUTCAoZGVjbCkpCisg ICAgICAmJiBHRVRfTU9ERV9BTElHTk1FTlQgKERFQ0xfTU9ERSAoZGVjbCkp CisJID4gTUVNX0FMSUdOIChERUNMX0lOQ09NSU5HX1JUTCAoZGVjbCkpKQor ICAgIHJldHVybiBmYWxzZTsKKwogICAvKiBJZiAtZmZsb2F0LXN0b3JlIHNw ZWNpZmllZCwgZG9uJ3QgcHV0IGV4cGxpY2l0IGZsb2F0IHZhcmlhYmxlcwog ICAgICBpbnRvIHJlZ2lzdGVycy4gICovCiAgIC8qID8/PyBUaGlzIHNob3Vs ZCBiZSBjaGVja2VkIGFmdGVyIERFQ0xfQVJUSUZJQ0lBTCwgYnV0IHRyZWUt c3NhCkBAIC0yNjk4LDggKzI3MDQsMjAgQEAgYXNzaWduX3Bhcm1fZmluZF9z dGFja19ydGwgKHRyZWUgcGFybSwgc3RydWN0IGFzc2kKICAgICAgaW50ZW50 aW9uYWxseSBmb3JjaW5nIHVwd2FyZCBwYWRkaW5nLiAgT3RoZXJ3aXNlIHdl IGhhdmUgdG8gY29tZQogICAgICB1cCB3aXRoIGEgZ3Vlc3MgYXQgdGhlIGFs aWdubWVudCBiYXNlZCBvbiBPRkZTRVRfUlRYLiAgKi8KICAgcG9seV9pbnQ2 NCBvZmZzZXQ7Ci0gIGlmIChkYXRhLT5sb2NhdGUud2hlcmVfcGFkICE9IFBB RF9ET1dOV0FSRCB8fCBkYXRhLT5lbnRyeV9wYXJtKQorICBpZiAoZGF0YS0+ bG9jYXRlLndoZXJlX3BhZCA9PSBQQURfTk9ORSB8fCBkYXRhLT5lbnRyeV9w YXJtKQogICAgIGFsaWduID0gYm91bmRhcnk7CisgIGVsc2UgaWYgKGRhdGEt PmxvY2F0ZS53aGVyZV9wYWQgPT0gUEFEX1VQV0FSRCkKKyAgICB7CisgICAg ICBhbGlnbiA9IGJvdW5kYXJ5OworICAgICAgaWYgKHBvbHlfaW50X3J0eF9w IChvZmZzZXRfcnR4LCAmb2Zmc2V0KQorCSAgJiYgU1RBQ0tfUE9JTlRFUl9P RkZTRVQgPT0gMCkKKwl7CisJICB1bnNpZ25lZCBpbnQgb2Zmc2V0X2FsaWdu ID0ga25vd25fYWxpZ25tZW50IChvZmZzZXQpICogQklUU19QRVJfVU5JVDsK KwkgIGlmIChvZmZzZXRfYWxpZ24gPT0gMCB8fCBvZmZzZXRfYWxpZ24gPiBT VEFDS19CT1VOREFSWSkKKwkgICAgb2Zmc2V0X2FsaWduID0gU1RBQ0tfQk9V TkRBUlk7CisJICBhbGlnbiA9IE1BWCAoYWxpZ24sIG9mZnNldF9hbGlnbik7 CisJfQorICAgIH0KICAgZWxzZSBpZiAocG9seV9pbnRfcnR4X3AgKG9mZnNl dF9ydHgsICZvZmZzZXQpKQogICAgIHsKICAgICAgIGFsaWduID0gbGVhc3Rf Yml0X2h3aSAoYm91bmRhcnkpOwpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS91bmFsaWduZWQtYXJndW1lbnQtMS5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0v dW5hbGlnbmVkLWFyZ3VtZW50LTEuYwkocmV2aXNpb24gMCkKKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vdW5hbGlnbmVkLWFyZ3VtZW50LTEu Ywkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFybSAtbWFyY2g9 YXJtdjYgLW1uby11bmFsaWduZWQtYWNjZXNzIC1tZmxvYXQtYWJpPXNvZnQg LW1hYmk9YWFwY3MgLU8zIiB9ICovCisKK3N0cnVjdCBzIHsKKyAgaW50IGEs IGI7Cit9IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKTsKKworc3RydWN0 IHMgZjA7CisKK3ZvaWQgZihpbnQgYSwgaW50IGIsIGludCBjLCBpbnQgZCwg c3RydWN0IHMgZikKK3sKKyAgZjAgPSBmOworfQorCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInN0bWRiIiAwIH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJsZHJkXFteXFxu XF0qXFxcW3NwXFxcXSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAibGRyZCIgMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAic3RyZCIgMSB9IH0gKi8KSW5k ZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vdW5hbGlnbmVkLWFy Z3VtZW50LTIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL3VuYWxpZ25lZC1hcmd1bWVudC0yLmMJ KHJldmlzaW9uIDApCisrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L3VuYWxpZ25lZC1hcmd1bWVudC0yLmMJKHdvcmtpbmcgY29weSkKQEAgLTAs MCArMSwxOCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLW1hcm0gLW1hcmNoPWFybXY2IC1tbm8tdW5hbGlnbmVkLWFj Y2VzcyAtbWZsb2F0LWFiaT1zb2Z0IC1tYWJpPWFhcGNzIC1PMyIgfSAqLwor CitzdHJ1Y3QgcyB7CisgIGludCBhLCBiOworfSBfX2F0dHJpYnV0ZV9fKChh bGlnbmVkKDgpKSk7CisKK3N0cnVjdCBzIGYwOworCit2b2lkIGYoaW50IGEs IGludCBiLCBpbnQgYywgaW50IGQsIGludCBlLCBzdHJ1Y3QgcyBmKQorewor ICBmMCA9IGY7Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyAic3RtZGIiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgImxkcmRcW15cXG5cXSpcXFxbc3BcXFxdIiAx IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJsZHJkIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzICJzdHJkIiAxIH0gfSAqLwo= --_002_AM6PR07MB4037775DF79E0229DCCA425AE44F0AM6PR07MB4037eurp_--