From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailhost.st-andrews.ac.uk (mailhost01.st-andrews.ac.uk [138.251.6.248]) by sourceware.org (Postfix) with ESMTPS id 5F4223858423 for ; Wed, 8 Feb 2023 13:29:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5F4223858423 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=st-andrews.ac.uk Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=st-andrews.ac.uk Received: from mailhost01.st-andrews.ac.uk (mailhost.st-andrews.ac.uk [192.168.0.2]) by mailhost.st-andrews.ac.uk (8.15.2/8.15.2/Debian-8) with ESMTPS id 318DTrUp2465100 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Wed, 8 Feb 2023 13:29:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=st-andrews.ac.uk; s=mailhost; t=1675862994; bh=NKe2ncrz4nQHS/LzdWkYCVAxNztumkZKSNDFn0hijVQ=; h=From:To:Subject:Date:From; b=Qh/iEY1H2PS4yggk3DlSuJ/MMzI5SZZLkTegY1/t1bAus01kuIZu6pHgDUTlmnDfQ 6kwr9uj6i/YLGDL/OChM4XdVBFU9i+NrqTQSwG2zydCVnOz/67TzlVZJHpHlyfW/cI fPPmR45PVqpBxoCv6jWunLIyMM3NVK9Si/qGur/TmsPOkI3L0tyVuvhM7VJ549B04J 6DnTUoEWMNvi5H+jdYIgMaq3LfSLUc7qJ8bfWd9BLBSIcy8p1wW/TTabPXm5NQdvd1 4iRxvcjBtmlkIMgGE93clCKbvEoEhM98ZO0ivDxhIPKiF/4lJ8pptoiNiEDkrgEUQl 5WTIDNvPaJeUA== X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-StAndrews-MailScanner-From: gbs3@st-andrews.ac.uk X-StAndrews-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=0, required 5, autolearn=not spam) X-StAndrews-MailScanner: No virus detected X-StAndrews-MailScanner-ID: 318DTp542465084 X-StAndrews-MailScanner-Information: Please contact the ISP for more information Received: from unimail.st-andrews.ac.uk (exch13-srv03.st-andrews.ac.uk [138.251.9.20]) by mailhost01.st-andrews.ac.uk (8.15.2/8.15.2/Debian-22) with ESMTPS id 318DTp542465084 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 8 Feb 2023 13:29:52 GMT Received: from exch13-srv02.st-andrews.ac.uk (138.251.8.23) by exch13-srv03.st-andrews.ac.uk (138.251.9.20) with Microsoft SMTP Server (TLS) id 15.0.1497.45; Wed, 8 Feb 2023 13:29:51 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (104.47.12.50) by exch13-srv02.st-andrews.ac.uk (138.251.8.23) with Microsoft SMTP Server (TLS) id 15.0.1497.45 via Frontend Transport; Wed, 8 Feb 2023 13:29:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RVLQ5PZygf6/f33Z0TdJiGjmZlltyQ0f3u91NLk++AvpfMVcpZascWacZxoVuInYI0LIYrmEXNE2phHoPNDoy4jdq/77HG7NPQXMkAlkllVKmsedEGOvvvFdbsnVrflpM/Ii8EuqqJ7sfxfXtuafQvJKP27mnT2FiUHiSlb4vrj2oyjfQFcJRPBAeAQeh6qBCKAWzgnYQ3i4XOGkGoXW6sIkpbZeYSbky1e7an91Vl40FdCyU1YinKq5mw0qkpU2Re9nmO5nPD4WZ+cOyYTUDsyEVz+lCjiHDArn2FpeyYk82maSCyekaj5Liy5oUmAKtjn05gWEluEPCRgwZrpMZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lgz0gaSoVqwPNarFJnuu44ggEpHN3b9EG/IxTOvqk5k=; b=YF0qHEWIznrTzz8nM/2yTle8/H/uOjBNhRrXXhp/eK7GAaVBhXgYnGCo5mhcIDs2HqU/Wq59Odsr7pW3vWa35PM4D4s/YbxZ89htNSDpJ0R+U1kkygeuFe6wQsVQNNjB0q1/6Xf7A0rHj56mmbB5ji4qPEecxc330YqV5KvMMGs2lwrb0uepx6LOzJhb29LuEJIJf5363jKY0BLADMjuAK66nXoY2KVO/rye/UE/4KW7EMum6AYBnnVkFLupkkBzLwmEhND1bztd2XE28KS6+qJKQ/k85bFX/9RHMjmwFtMHQm1rnFPJRxCsGcZ9U27pKQGrK1aHA9yr+6yG4SZ41Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=st-andrews.ac.uk; dmarc=pass action=none header.from=st-andrews.ac.uk; dkim=pass header.d=st-andrews.ac.uk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=UniversityofStAndrews907.onmicrosoft.com; s=selector2-UniversityofStAndrews907-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lgz0gaSoVqwPNarFJnuu44ggEpHN3b9EG/IxTOvqk5k=; b=zVtiY8t0zSctiggxhoTZpocnBm46A5E7h6WsaJQR4a7izc6lWPFoEZ9oscAdEyrn97to0WPt5Wn9o6eKU6fUknAbSOwwOCV/UTZhMYcmeLQU6q8w7Qt48dHdVBoA7qe5+9stL8qAwaDI0O8Kl4OCj5ySFHA5FoGEECpm8p5MMvc= Received: from VE1PR06MB7054.eurprd06.prod.outlook.com (2603:10a6:800:1af::18) by AS1PR06MB8441.eurprd06.prod.outlook.com (2603:10a6:20b:4c7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.17; Wed, 8 Feb 2023 13:29:50 +0000 Received: from VE1PR06MB7054.eurprd06.prod.outlook.com ([fe80::371b:9ebf:32bf:adb0]) by VE1PR06MB7054.eurprd06.prod.outlook.com ([fe80::371b:9ebf:32bf:adb0%6]) with mapi id 15.20.6086.017; Wed, 8 Feb 2023 13:29:50 +0000 From: Gaelan Steele To: "gcc-help@gcc.gnu.org" Subject: Why does this unrolled function write to the stack? Thread-Topic: Why does this unrolled function write to the stack? Thread-Index: AQHZO8AHQYgGwTgyzkeTfGdFs12whg== Date: Wed, 8 Feb 2023 13:29:49 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=st-andrews.ac.uk; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VE1PR06MB7054:EE_|AS1PR06MB8441:EE_ x-ms-office365-filtering-correlation-id: 114d4c31-ab1d-42e6-6980-08db09d88dc4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YBpV2/YDfKmByCI3Ihq2T8gXixG0snM+a7CIrEogj8ZZTu8C78hLneVzvM66AWUdbN78qfeLRSF97A8o4iR3Ji2zdNuLMFqDKtVxsrbwEkw7RDB293/mJbnHYWcIVii8m8jRf69jn1+5C04Q+tVOMyqYaxos8nlQ5w0+WZeeMmyEFO96RD5tGG3ZbldA2t0dOIZsDwi40CXgXJtZJSs5hAmBsvI0IQ/jnC+0TZbO3L5AnTc/FGR4qTcO1sBH8GTZJtIn4iP4kubBqaUMExavih/bePXeQq7qSYdpKg7b/UwBjklwItG1WIDE+x+NjIkNYvrF0siLHynX/IQhuwHf1AgU55NcXYU4JGp1GSJTRSwyhByMOGp5IoE/Z3zBGbQI9BSH0EhwQnbsVri9yza/Uudr4tn9bFlUbWGJiALsRoHz6BA4oyTBYRcEEwFlEfNz1TFtxhk9vpfC4ysLGrYm8HkDofBMSGGYzhWO4BxqhD/8m3ffQWpmisg72AogUw3KdwletgLVQLu8l5N6PlM4Fbq14dXw3NEIkDxmheGKC88w7QHGqi9zQCQWUs4SkYzXjvg64v5EqRR3qm36dPnHIDXkgaY5Q9IKDei8qJxz6GpLn4Pr5J0OD5BLFWQN2Rp3iiJf1kuj78uGna8/k1Qkrfz4of/qqW75RMLY6cNM4CcBXc2BWibnmTfiT/JICsNEP5MTzXaLwBywvBPJJDXz139N6rX1tPTenbksGfHkGVmYNIMvD6A0RK+FIrKViuLK x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR06MB7054.eurprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(396003)(39860400002)(366004)(136003)(346002)(376002)(451199018)(5660300002)(4744005)(2906002)(41320700001)(83380400001)(55016003)(38070700005)(38100700002)(76116006)(8676002)(122000001)(91956017)(66946007)(66476007)(786003)(6916009)(316002)(52536014)(8936002)(64756008)(33656002)(66446008)(66556008)(41300700001)(186003)(6506007)(71200400001)(9686003)(26005)(7696005)(86362001)(966005)(478600001)(88722005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ub7dvuDm0YXpdk05zaYhZX9gGVaP65Vs+rocM1CsFkHmPNnjVa9HQuyALx?= =?iso-8859-1?Q?+yjkyCRwOhB6jVykgnjby3Evt23vp2YWiwrK/x/+LC0zhnteqs4+6QCo4d?= =?iso-8859-1?Q?aSyylCDrXsgCU2Gaev85Ovks0PTWoUWv9rpVDqF4l7xbrt5iPZ+b2Y0JPD?= =?iso-8859-1?Q?zS5scP4IYCZmFeyIptFufTvDuAqcFgdq5l1gXuCRUB+3ErCLl2/bBB2dPW?= =?iso-8859-1?Q?A3b737hCJvzsBu443xIVscsYT+2kJCsqInDarclf03390sVOsa4UGyv934?= =?iso-8859-1?Q?LiBOcaU4bLphyK+0T3frfxKPT6U7NRI1+wwj9TieYaQm15ikPsJ+umDZJg?= =?iso-8859-1?Q?d84sr4X1oKo0ssQr+mCDoK5tuSfr/1OWiG7evK3eRbISd4lAtemUDHyG7/?= =?iso-8859-1?Q?LjWMv4HPzE9+GJYoZan8+3WShUapq2gDHBrHBA3tR4dSxCgONh/1rUCzWd?= =?iso-8859-1?Q?RvpuqLsSttEkGld77at53rpj5sdbFvK7ecoJHbqehI9OU96Ca1UxTAJwb+?= =?iso-8859-1?Q?z6r9fPpU7s6P2RW8a3iaYtzNUxKt9bILaHKfZTd1qHohgBqmJggrqD0Gsa?= =?iso-8859-1?Q?DdBfq1sDzUnlhQJyee0WtxnSAHuHxqIr80UcyREcvKWIyXiW3/qMia+0CX?= =?iso-8859-1?Q?VfqfP44ha0aoEAAnrKvJ/QZUT+yHBaOZpaQtQs4q4fKg4meueepYpMmw+0?= =?iso-8859-1?Q?GyGfVqZs4BFXh9Y3JbhBNouDR0WbYt8aCrLJ1kI72QZ2FDF7uPYFEdNQII?= =?iso-8859-1?Q?uxLLec7jFYQRIhdqOAKE92LEvRWsjtlV4gi7i6akhYbPn42Qe4yhGns5sh?= =?iso-8859-1?Q?Pz6YzN+zylONB9uzqWBqAfIWr2xj8xwLb4sQjtMewlipYWk/q3lE4/h0aN?= =?iso-8859-1?Q?K6qUm7Uxof20WyHAwpWvqcgZjr388+WZvHjt/TrS6jwQiycqTOhqjvq6lV?= =?iso-8859-1?Q?SpdKPyrWpWkvudvkebu0bQqrwE6WkXQAgiwzqiO+sp2zSA/Uux4PXZMrzY?= =?iso-8859-1?Q?4mP3ZToaItbw+a4Ab9MCDNRXnrE/2j6HwvsVPiCSkXrlJXeUJctOa249zo?= =?iso-8859-1?Q?9jKOG+oFvCkZlOmV01a+0h6h4Hl5MWisah7Lmr8/1RHWMu9nWbH/ncvGuA?= =?iso-8859-1?Q?4gjPToPl/rey3FW0qrcT/9+In5ROiUWNAwdXtB2BJtGzrNVm67b+mjthQv?= =?iso-8859-1?Q?ml3muEshJYL3ijBM1FTEYFCCGc5c26+GvUxVbSv/OSfCLGjEGnUhQr7hyL?= =?iso-8859-1?Q?8LqQcJ9uvqTtIjZe3tExSCACPfAMJE8L5FVOIUd3AuvP1u9zsRbVDj1B3u?= =?iso-8859-1?Q?trWdGSPOL6kjSa2/Uf6V1PkjV0zUgBSg9pxXZTvKkRMBwdyNJTz/Vyteo6?= =?iso-8859-1?Q?KcMQjQVNcq/PWDQ2SD3bVg4qDBSLErkvGd9iFlMwXriFZK6UGq0eTuVOeM?= =?iso-8859-1?Q?28/DaIiqB+s9YiPTQijMJmrMUG/fJHHJp3J9Y8UP6g66VzWJiVwWqAsNig?= =?iso-8859-1?Q?7Ji+8oXtVa2ePYIRidbc5i8c9jV+QLqushUPgdRRAx2cZ5QLXDtlqUfMXw?= =?iso-8859-1?Q?ES1fh4sh58CKDL5EYMEl04AgXA5S87qpxlQtjTok7JHHzflVexGH4X5kyb?= =?iso-8859-1?Q?0ND3OLFERPgOz3Vf/sbIP2tAG6rfph1ajq?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: OuXmxVGE64TOIoojLBUgZ3PjODUkPrjpUuxey+yQX+XGzbUfvAbjS1hPNVh3800VcTMVfATKXA0ukQvuE4c6BLToxzjaardcPoz+hvOVjAeEZQLmQR5Pkt3u9RYYj+6TUKKendnFel+x67vZCMWE9w/a69GHQR0AiqpkbzlffqKCV7cpV536wbocDrDELsd0JuBUoBp2m03ZZ0O6ebyy7MS5qPIdPit4A2v6ijPWdyPbwx/Zwakvtras/0yLZ9hSLwIV/jCq29uSUC9GGsMSf2Q9I9IQsgQemy3OU3KvkAwj7/rZTfUFLut2PwPh9Uyxciu+cFUApUFxmEX9B1CG19/w+zNBJC/i6+97IiCyqam0CvOBWbZOmIzDeNXQyFeFi2JMqS196VuV8LMsax6I3dZB5mCBn2L/jFNKcIttTIE+Gs/ar0i+6RBm6k+Gq8vDgf9fFBkdB6U8OCfK9gOKtAB4XmxbZELqQc7saA6zgVZg+TYPBPZqprogRPVxRG/iIdpSwy5DYlZV4EbC8Flu8tH+Mt/M94wIU7TBm9Z1kGhwcDi81+r94GApE+Z94C/NeB/Cta1jsFgC0zjfpyKWlL/YdFNPpDYj5BF8yxp8ALpTHB+WTDBBvYkGlZ2g/dRb8EystUWmIerGEfBMN7ebi4ga2/qsYfU7FG+xIWlthdBsa/kiQfFCTD+T+Td2N/5myoJ/+BwUyT1ro/BpOsKEroPe9IjxTJn35oboE9ZmMjfIZBKOpsOT88+v+ct1wwHRj6nZnPdaAzfyc/wtaBcPZ6TuCpMH+mx5n1Ui79NC6oU= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VE1PR06MB7054.eurprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 114d4c31-ab1d-42e6-6980-08db09d88dc4 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Feb 2023 13:29:49.8477 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f85626cb-0da8-49d3-aa58-64ef678ef01a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: adYtVmmrJJhSAJ5vM82w9smfaqK0Y2x+s+CF8lMu+A2UQpDadvpXxVO3Bro0mi4txG3dle9a5ack8xLaQjg8jg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR06MB8441 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi all,=0A= =0A= In a computer architecture class, we happened across a strange compilation = choice by GCC that neither I nor my professor can make much sense of. The s= ource is as follows:=0A= =0A= void foo(int *a, const int *__restrict b, const int *__restrict c)=0A= {=0A= for (int i =3D 0; i < 16; i++) {=0A= a[i] =3D b[i] + c[i];=0A= }=0A= }=0A= =0A= I won't reproduce the full compiled output here, as it's rather long, but w= hen compiled with -O3 -mno-avx -mno-sse, GCC 12.2 for x86-64 (via Compiler = Explorer: https://godbolt.org/z/o9e4o7cj4) produces an unrolled loop that a= ppears to write each sum into an array on the stack before copying it into = the provided pointer a. This seems hugely inefficient - it's doing quite a = few memory accesses - and I can't see why it would be necessary.=0A= =0A= Am I missing some reason why this is more efficient than the naive approach= (computing the each sum into an intermediate register, then writing it dir= ectly into a)?=0A= =0A= Thanks,=0A= Gaelan=