{"id":2231539,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2231539/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/PAWPR08MB8982DDC2777667CECB8FBAE883352@PAWPR08MB8982.eurprd08.prod.outlook.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.1/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<PAWPR08MB8982DDC2777667CECB8FBAE883352@PAWPR08MB8982.eurprd08.prod.outlook.com>","date":"2026-04-30T19:50:52","name":"AArch64: Add PIC/PIE support to large model [PR 123791]","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"b3756cdafc43b2a2fdcbe41d846d42488bd3e241","submitter":{"id":67598,"url":"http://patchwork.ozlabs.org/api/1.1/people/67598/?format=json","name":"Wilco Dijkstra","email":"Wilco.Dijkstra@arm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/PAWPR08MB8982DDC2777667CECB8FBAE883352@PAWPR08MB8982.eurprd08.prod.outlook.com/mbox/","series":[{"id":502370,"url":"http://patchwork.ozlabs.org/api/1.1/series/502370/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=502370","date":"2026-04-30T19:50:52","name":"AArch64: Add PIC/PIE support to large model [PR 123791]","version":1,"mbox":"http://patchwork.ozlabs.org/series/502370/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2231539/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2231539/checks/","tags":{},"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=hjLW6BAu;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=hjLW6BAu;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=hjLW6BAu;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=hjLW6BAu","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com","sourceware.org; spf=pass smtp.mailfrom=arm.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=40.107.162.2"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g64Zv6Ft9z1yHZ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 05:52:38 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 5057C436F7C2\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 19:52:36 +0000 (GMT)","from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazon11013002.outbound.protection.outlook.com\n [40.107.162.2])\n by sourceware.org (Postfix) with ESMTPS id 2BF854BB3BFF\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 19:52:04 +0000 (GMT)","from AS4P189CA0046.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:659::11)\n by DB3PR08MB9085.eurprd08.prod.outlook.com (2603:10a6:10:43b::15)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Thu, 30 Apr\n 2026 19:51:58 +0000","from AMS1EPF0000004B.eurprd04.prod.outlook.com\n (2603:10a6:20b:659:cafe::44) by AS4P189CA0046.outlook.office365.com\n (2603:10a6:20b:659::11) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.30 via Frontend Transport; Thu,\n 30 Apr 2026 19:51:58 +0000","from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n AMS1EPF0000004B.mail.protection.outlook.com (10.167.16.136) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.22\n via Frontend Transport; Thu, 30 Apr 2026 19:51:57 +0000","from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20)\n by DB9PR08MB9562.eurprd08.prod.outlook.com (2603:10a6:10:453::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.22; Thu, 30 Apr\n 2026 19:50:53 +0000","from PAWPR08MB8982.eurprd08.prod.outlook.com\n ([fe80::5821:707a:c30b:dd9a]) by PAWPR08MB8982.eurprd08.prod.outlook.com\n ([fe80::5821:707a:c30b:dd9a%5]) with mapi id 15.20.9870.020; Thu, 30 Apr 2026\n 19:50:52 +0000"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 5057C436F7C2","OpenDKIM Filter v2.11.0 sourceware.org 2BF854BB3BFF"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 2BF854BB3BFF","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 2BF854BB3BFF","ARC-Seal":["i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1777578724; cv=pass;\n b=AdmeeaNVsqks1GWD+V7cr3w/AJiAGE/jw9mrrRNIUb1MVU4QEVZpZDr2XdEvhjqr6qJjbU6zR1fqOJU5acPG26kxzIJ52bRhEpjrjF1F8QR96PdtZOUvmSOj8xtKhY5bcdT4rg38TPtATfbnWQL1cbG2HJRb6JAUkNpDeRsgk68=","i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=dRoFyTJnDFz7S3JvBeUbo0ChZL/NYH03LWA64i9HFfD08D8gStIxFixjx0tcjrKhxWIR97XYEWlKRaiGUfEEYyp3De9vrZfZVGIVLJHAxJG3YElqPt9++bvofpRtLJhqJL97loARnVvyvLhP4ODEdTJyleEcJ0wCNUKyzGH+kFvQUKSCkkuJu/xQVTEDICSGCNelnYNLv9dphoC/ppfwly8hp52O/duZCj1kSJV6H7Bz9JXarGIMxJaewqKM0FS9i5fvEfao6zp7d/cUdL58ZeAXQM2pjMhUMTfeGrxirUmmaukdtahN7xv2jp+w3oRFfjGqhBi8bL1deSqXJ88uig==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=AUozGz4zvqxNBhSY00kO8u2JdjIyEAwPGqQbk35ECN3R4l2cW6vyVoqijWdfk65AoduOUXx/+cLjHOyLktF4GkD9JG0z5apZ9CiOPtnwt4c62gGgN1xHLkMrqBRH3g7c7ichyMj86artst/ZdO6oo5f56b+1FNfkEFIKDApxRZQFuSQffAtJTBkAfL2X46Z+1OGGqnX1RBx0iT+ZdxshA0Vy5X1NoOujctpMvGqrWncgwkivT0URrHZPA7kuHKZJZqQhpF8SpjK63wBEaha8fyDMN5XM3cWOVPrXSz37j2IleJt8nB5YV6sXb8Owh6PcEPyqXCZn4oPFXXOh66KcUA=="],"ARC-Message-Signature":["i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777578724; c=relaxed/simple;\n bh=W2Ez4eF0kEen+13Y73CW0ebf0tyYR01nccIZI63fzgw=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=scRBzpreeMG9KoEbz/6t9vlyWhktaOC1Z75NelmpGZXBONeJr8dPnZI7mYDeIbI7r9F2GI4M+/eJruoJcFREtPEZ7BvgH5n4AnIAYOP+j/T0uSFCropMfUfhhQm/u6w/6Ucy8/CmEbjli0bWkeJB96vGlpfalBYNPY8niilHUsM=","i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=s7QH0m+U5fcNeiKDswm99Inamc7sw/fdVcW3gVRzY3o=;\n b=WHae/GA9vMc+7kSOfMAeoh30mLFWVpwo7CmPN4W5KpDESs64GuRROp7+gtghOyoeR6Ei/10616QodbE7zbfMB1MA0zlLs+BxVZ4iEaGFf7tanRdrJHz2koejyFmDVQbA+qh4KmZ9QxU1RzkZAcdq93wi2B9sTEJx6vURgeeh3Su71rTo9BYm4XhUKkgALEGfqxvIauioS5C/hLmqzhfSHM55EiNb8rkzoP58bXn7MC6kGjPv3hc3FlnGOtSjKrj1ULdTxm7IaU6RhXQ36FdqtoRgLo4TF1RMYsI0J2ovtqsHBGM18UGS0CNo78YuZg+shJKLYNebLs6++7TaEKRFjA==","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=s7QH0m+U5fcNeiKDswm99Inamc7sw/fdVcW3gVRzY3o=;\n b=ag+VXEFa597urqGT/MPF1vNEWadkcf/bBgmsY0Bl+uBRYoVOPtejWQ+p2E3Qj3aAtU4tKxOgCU6gYI7lv8nJsZMeTRTYwLkQsiQ0ddX5kdJky+XmwdBtLU/SRGr8duxWJ6Ztx7fes9BsTW/yQwUxKhYOlMWYJWkr9wHp6/eGRzicXCmZUbU8yiu+m9MCeHbnvFlUqjtkIHLA4EMCgqrSFqCyq16UgTRvTKLmYiH1AsRfnm3/SsI+tadskSdPTCQrlYEd0nn5FTNhlI23ngUxaIM+KnWrxU54DWZw0wtVyD8wuErRcuYilBOteWhaFFTfj00m5KQ4XTIckG4aQoHjAw=="],"ARC-Authentication-Results":["i=3; server2.sourceware.org","i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 4.158.2.129) smtp.rcpttodomain=nvidia.com smtp.mailfrom=arm.com; dmarc=pass\n (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass\n (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]\n dmarc=[1,1,header.from=arm.com])","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=s7QH0m+U5fcNeiKDswm99Inamc7sw/fdVcW3gVRzY3o=;\n b=hjLW6BAuCrDNlmVXZbAUgFi7gSFupvhhRuaSEHTFJJgJrwwhvTP0ERrygn5RYYAl49F+cJu4n/9/6FKITv8JuqI8gNluMf8qc8q285fIlUwbXHeH6VhRbtcWqdBysJLgxGhmwtppDLq4py4F4BHOUE6HvBZGfsCnKtoBlqYByvo=","v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=s7QH0m+U5fcNeiKDswm99Inamc7sw/fdVcW3gVRzY3o=;\n b=hjLW6BAuCrDNlmVXZbAUgFi7gSFupvhhRuaSEHTFJJgJrwwhvTP0ERrygn5RYYAl49F+cJu4n/9/6FKITv8JuqI8gNluMf8qc8q285fIlUwbXHeH6VhRbtcWqdBysJLgxGhmwtppDLq4py4F4BHOUE6HvBZGfsCnKtoBlqYByvo="],"X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 4.158.2.129)\n smtp.mailfrom=arm.com; dkim=pass (signature was verified)\n header.d=arm.com;dmarc=pass action=none header.from=arm.com;","Received-SPF":"Pass (protection.outlook.com: domain of arm.com designates\n 4.158.2.129 as permitted sender) receiver=protection.outlook.com;\n client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C","From":"Wilco Dijkstra <Wilco.Dijkstra@arm.com>","To":"Alex Coplan <Alex.Coplan@arm.com>, Alice Carlotti\n <Alice.Carlotti@arm.com>, Kyrylo Tkachov <ktkachov@nvidia.com>, Tamar\n Christina <Tamar.Christina@arm.com>","CC":"GCC Patches <gcc-patches@gcc.gnu.org>","Subject":"[PATCH] AArch64: Add PIC/PIE support to large model [PR 123791]","Thread-Topic":"[PATCH] AArch64: Add PIC/PIE support to large model [PR 123791]","Thread-Index":"AQHc2NnphXLSz6CilEqAiighz9xtKw==","Date":"Thu, 30 Apr 2026 19:50:52 +0000","Message-ID":"\n <PAWPR08MB8982DDC2777667CECB8FBAE883352@PAWPR08MB8982.eurprd08.prod.outlook.com>","Accept-Language":"en-GB, en-US","Content-Language":"en-GB","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","msip_labels":"","Authentication-Results-Original":"dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=arm.com;","x-ms-traffictypediagnostic":"\n PAWPR08MB8982:EE_|DB9PR08MB9562:EE_|AMS1EPF0000004B:EE_|DB3PR08MB9085:EE_","X-MS-Office365-Filtering-Correlation-Id":"7995c5a0-0c12-478c-be47-08dea6f1f01c","x-checkrecipientrouted":"true","nodisclaimer":"true","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam-Untrusted":"BCL:0;\n ARA:13230040|366016|1800799024|376014|18002099003|56012099003|38070700021;","X-Microsoft-Antispam-Message-Info-Original":"\n WjcwV7DYl6t/MxhnkokbmPVErO0hqArsmeK5pR2pWzpPMLlgD/qx9WchoxhIfbraEBo05wtEhC2g+57EhTUwxowtgVIbhNAKk0qmxBg7DP1CZaXZHColgaYIe4rtzC6Pw/ER3TWMLkoUE3m8eqQRzEzqw4Hw19lXbkp+fCyBJnIHi0GnZslj1I3TgSOkRbU8ZOC87SW2IRihqA1U0fUBXJgP9B08uq0x564ZrJVF+bbyZRZ+dF7pW1soCRh0Ad+H0uk/ngYRnotaHW9YLW+cHOzzzclI02yJALIjKKDR3bibdr5agadr94aZOUww03mV2A576KorMgQTxcTQmcBwbbJTlAdpE17QFhCoAa/TVeqGnaxND16sz/hwes3fq4FlmFpRsohTe2TBuR4DnyvHFnqTv0mhYqtMNJHjIcn23Dyck9p8gMPQhFqHoa6uBwTcqMUxNW0BI2puF1UVVKkQ16bcCr2WJmKQxg7v7fq/eO5blAZQx/Ef0ZAedX7Z6DDiRFkBZ+nnXxOsrEi/VrKqrPiEnjc4cfAyp8r8AKU+ieSRR5pefgdwC8N7hZk0Ik4MNTw+0vZqjCor7o4sZQel6haKefrz2ljcnBrI4CiiLSf5DKAnQOIkw/gDLTqKC84HaL6Hu8itNxZ+5oynKMnwla4dzHzk6fhvhZGrcwWZFPsw/FOnNPo+e4+zQVMtRjrSGiuPyVgnYqtm/+RX5gx8Xw==","X-Forefront-Antispam-Report-Untrusted":"CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAWPR08MB8982.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE;\n SFS:(13230040)(366016)(1800799024)(376014)(18002099003)(56012099003)(38070700021);\n DIR:OUT; SFP:1101;","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-Exchange-RoutingPolicyChecked":"\n jhvM3+9u6xm+FZjOt6zLBmHob/D+df/tlUAPBmuLLjnWWPN7shuwjUeUdIWPcvltXa1mMWc7HReKwKRnCFLOyfHNnNu5RzZ8+gF+kLPznSzRWxgmTZVcbNpxp+hFdVi10pV/4v5n04WyztuoBeH+mc4ddOuYID1BiWX3QKn1X4PYOXs3c9/4gSTMxjSGSonRhrCWIR4xiuospGHZ+FFHX4M8X4uF3VRmyLlxKv/rqTeiL0J0Jm9GNKOPQTafl2NJZf6ZzhEfsHa1rE21aWT8KLL0Ow6b7xmYXFkU9qm2cEMvouI8UVEuC18dojMGqPu/rVF5idb2oCGXCVZVzmNQmA==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":["DB9PR08MB9562","DB3PR08MB9085"],"X-EOPAttributedMessage":"0","X-MS-Exchange-Transport-CrossTenantHeadersStripped":"\n AMS1EPF0000004B.eurprd04.prod.outlook.com","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id-Prvs":"\n 233c451c-40df-4b1d-124a-08dea6f1c95d","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|82310400026|376014|36860700016|35042699022|14060799003|1800799024|13003099007|18002099003|56012099003;","X-Microsoft-Antispam-Message-Info":"\n x5LMHf0G6YWrBSyB8MTNR7CFjzChPgX1RQakLd7Ceux/R3e+nGdCn+9q1WN3Df8zVzI9uOYOeADf2gprKZXZLyDwrv+oND6Jh9Nik5E1TVWJjroOhYt32rrhKf+5LyiBAMFwkboksFFenKQUkTrM8VEZlFA1UjyUbWk4RvN/7j7n1vM1G0CCbnsdTOQcp7l6+INpPDODTRqvRrVGLufcmztQBPpR0Ytwn8irAe9NElQR4AlWn/OGJHJDwINXeplQmvOf81GtNF0/1g+GLlxyPWbairS58oZaZkKMe7k7lr8xr9V5wkn8SHAmgmxV75TPzxEnupZQ/RwsRqbvwLCSpfZ6eQluzMGD4UzjrfNRkMPkLpYYR/lvlG7OGXnZRCpKDiX7HX1i/9Vq5/7aOmwKncOYnCG31RvUOjcsmtD65+c1MUZpKxl4dcf07mOxoD6NWUCInxp2nYEfsw712P7jBRtpBWD5rHENNECSguQtkRxfQ+1qr2mrCejj3wluDXmUndxi+3j2VYSs6qFgg53Pyd7LaMz9YaFspU2Yyx2u/5w+T/YX4s4DvxT2LZdUsgOUt6HVoNQSYQEIbEHyZ7b2VADRBt8TstMk8YcUzNZcIEOUWU6eADPZz02x3WPaeqnzN8LpVlLFpiMMZ0Jojug6s1mF9pkXGw/zGoRudUGeovcBWwPM1lYTadNI3q/03j7y","X-Forefront-Antispam-Report":"CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(82310400026)(376014)(36860700016)(35042699022)(14060799003)(1800799024)(13003099007)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n ZTXhhSHNa2vJuweCjaEA2UfzoM4K7HVtBmfxSom96dvBD/V8W3emlZff8rTfNpQSmbRajGzSAK6cRfI4ftvzPijjiKAVcfEQGa6I62RN4hNqlsv9+D/UsrZymA2Rvimf6S86/dhmRsSyTD1FME+2XNKsqAQHrEK4P4WtFuadV1uWsNvzBcOfBw9yMZduypgllMXEQn1YKO5s+uTHJWgp2pMGbKlXDCoBW67hZw+/HKLiBpV5bO2V+iouJz/4IPfrNyqI/WrBNwvs4JcPMnHUzEREdParxUR6GoC2hO0NSwhAggnlB0q/9xBOxen35HNwZ+PvgXE4z20BlOGFuZLbzQK5q0Hofn+qX+82r0jmA4NgO1ZiiBVhvjZMBtQ45mbVhOjA/apgyL9DBwC8/EFYI4qe0LgqpZ2XX/AnR5DayFjO6GyWhcz9Z2qs3rnJEIZd","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"30 Apr 2026 19:51:57.8406 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 7995c5a0-0c12-478c-be47-08dea6f1f01c","X-MS-Exchange-CrossTenant-Id":"f34e5979-57d9-4aaa-ad4d-b122a662184d","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129];\n Helo=[outbound-uk1.az.dlp.m.darktrace.com]","X-MS-Exchange-CrossTenant-AuthSource":"\n AMS1EPF0000004B.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"Use an indirection via GOT for data accesses that might be out of range of\nADRP.  Using the GOT avoids placing relro symbol references in literal pools\n(PR 123791).  It also allows the large model to trivially support PIC/PIE.\nConstants and readonly data use ADRP since the maximum text size is 2GB in\nthe large model [1].  The code quality of -mcmodel=large improves dramatically\nas a result: codesize of SPEC2017 reduces by 2.2%.\n\nPasses regress, OK for commit?\n\n[1] https://github.com/ARM-software/abi-aa/blob/main/sysvabi64/sysvabi64.rst#code-models\n\ngcc:\n\tPR target/123791\n\t* config/aarch64/aarch64.cc (aarch64_expand_mov_immediate): Remove\n\tforcing symbol references to const mem.\n\t(aarch64_cannot_force_const_mem): Likewise.\n\t(aarch64_can_use_per_function_literal_pools_p): Return false for\n\tlarge model.\n\t(aarch64_use_blocks_for_constant_p): Update comment.\n\t(initialize_aarch64_code_model): Allow PIC/PIE.\n\t(aarch64_classify_symbol): Use SYMBOL_SMALL_ABSOLUTE for constant\n\treferences and SYMBOL_SMALL_GOT_4G for writeable data.\n\ngcc/testsuite:\n\tPR target/123791\n\t* gcc.target/aarch64/pr123791.c: Update test.\n\t* gcc.target/aarch64/pr63304_1.c: Likewise.\n\t* gcc.target/aarch64/pr78733.c: Likewise.\n\t* gcc.target/aarch64/pr79041-2.c: Likewise.\n\n---","diff":"diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc\nindex a85fb0f8cfbedf2f1cd33415912d6bede6b7b07c..a735bf1311d7ff52fef7a322fb4a1eea3c6edc16 100644\n--- a/gcc/config/aarch64/aarch64.cc\n+++ b/gcc/config/aarch64/aarch64.cc\n@@ -6726,45 +6726,8 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm)\n       switch (sty)\n \t{\n \tcase SYMBOL_FORCE_TO_MEM:\n-\t  if (int_mode != ptr_mode)\n-\t    imm = convert_memory_address (ptr_mode, imm);\n-\n-\t  if (const_offset != 0\n-\t      && targetm.cannot_force_const_mem (ptr_mode, imm))\n-\t    {\n-\t      gcc_assert (can_create_pseudo_p ());\n-\t      base = aarch64_force_temporary (int_mode, dest, base);\n-\t      aarch64_add_offset (int_mode, dest, base, const_offset,\n-\t\t\t\t  NULL_RTX, NULL_RTX, 0, false);\n-\t      return;\n-\t    }\n-\n-\t  mem = force_const_mem (ptr_mode, imm);\n-\t  gcc_assert (mem);\n-\n-\t  /* If we aren't generating PC relative literals, then\n-\t     we need to expand the literal pool access carefully.\n-\t     This is something that needs to be done in a number\n-\t     of places, so could well live as a separate function.  */\n-\t  if (!aarch64_pcrelative_literal_loads)\n-\t    {\n-\t      gcc_assert (can_create_pseudo_p ());\n-\t      base = gen_reg_rtx (ptr_mode);\n-\t      aarch64_expand_mov_immediate (base, XEXP (mem, 0));\n-\t      if (ptr_mode != Pmode)\n-\t\tbase = convert_memory_address (Pmode, base);\n-\t      mem = gen_rtx_MEM (ptr_mode, base);\n-\t    }\n-\n-\t  if (int_mode != ptr_mode)\n-\t    mem = gen_rtx_ZERO_EXTEND (int_mode, mem);\n-\n-\t  emit_insn (gen_rtx_SET (dest, mem));\n-\n-\t  return;\n-\n-        case SYMBOL_SMALL_TLSGD:\n-        case SYMBOL_SMALL_TLSDESC:\n+\tcase SYMBOL_SMALL_TLSGD:\n+\tcase SYMBOL_SMALL_TLSDESC:\n \tcase SYMBOL_SMALL_TLSIE:\n \tcase SYMBOL_SMALL_GOT_28K:\n \tcase SYMBOL_SMALL_GOT_4G:\n@@ -11184,11 +11147,10 @@ aarch64_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, rtx x)\n \t|| aarch64_sme_vq_unspec_p (x, &factor))\n       return true;\n \n-  /* Only allow symbols in literal pools with the large model (non-PIC).  */\n+  /* Don't allow symbols in literal pools.  */\n   poly_int64 offset;\n   rtx base = strip_offset_and_salt (x, &offset);\n-  if ((SYMBOL_REF_P (base) || LABEL_REF_P (base))\n-      && aarch64_cmodel != AARCH64_CMODEL_LARGE)\n+  if (SYMBOL_REF_P (base) || LABEL_REF_P (base))\n     return true;\n \n   return aarch64_tls_referenced_p (x);\n@@ -14319,14 +14281,12 @@ aarch64_uxt_size (int shift, HOST_WIDE_INT mask)\n }\n \n /* Constant pools are per function only when PC relative\n-   literal loads are true or we are in the large memory\n-   model.  */\n+   literal loads are true.  */\n \n static inline bool\n aarch64_can_use_per_function_literal_pools_p (void)\n {\n-  return (aarch64_pcrelative_literal_loads\n-\t  || aarch64_cmodel == AARCH64_CMODEL_LARGE);\n+  return aarch64_pcrelative_literal_loads;\n }\n \n static bool\n@@ -14345,8 +14305,6 @@ aarch64_select_rtx_section (machine_mode mode,\n \t\t\t    rtx x,\n \t\t\t    unsigned HOST_WIDE_INT align)\n {\n-  /* Forcing special symbols into the .text section is not correct (PR123791).\n-     This is only an issue with the large code model.  */\n   if (aarch64_can_use_per_function_literal_pools_p ())\n     return function_section (current_function_decl);\n \n@@ -20215,9 +20173,6 @@ initialize_aarch64_code_model (struct gcc_options *opts)\n   aarch64_cmodel = opts->x_aarch64_cmodel_var;\n   if (aarch64_cmodel == AARCH64_CMODEL_LARGE)\n     {\n-      if (opts->x_flag_pic)\n-\tsorry (\"code model %qs with %<-f%s%>\", \"large\",\n-\t       opts->x_flag_pic > 1 ? \"PIC\" : \"pic\");\n       if (opts->x_aarch64_abi == AARCH64_ABI_ILP32)\n \tsorry (\"code model %qs not supported in ilp32 mode\", \"large\");\n     }\n@@ -22145,9 +22100,6 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)\n       if (aarch64_cmodel == AARCH64_CMODEL_TINY)\n \treturn SYMBOL_TINY_ABSOLUTE;\n \n-      if (aarch64_cmodel == AARCH64_CMODEL_LARGE)\n-\treturn SYMBOL_FORCE_TO_MEM;\n-\n       return SYMBOL_SMALL_ABSOLUTE;\n     }\n \n@@ -22197,14 +22149,33 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)\n \t  return SYMBOL_SMALL_ABSOLUTE;\n \n \tcase AARCH64_CMODEL_LARGE:\n-\t  /* This is alright even in PIC code as the constant\n-\t     pool reference is always PC relative and within\n-\t     the same translation unit.  */\n-\t  if (!aarch64_pcrelative_literal_loads && CONSTANT_POOL_ADDRESS_P (x))\n-\t    return SYMBOL_SMALL_ABSOLUTE;\n-\t  else\n+\t  if (!TARGET_PECOFF\n+\t      && (flag_pic || SYMBOL_REF_WEAK (x))\n+\t      && !aarch64_symbol_binds_local_p (x))\n+\t    return SYMBOL_SMALL_GOT_4G;\n+\n+\t  /* Read-only data uses ADRP/ADD, writable data uses the GOT.  */\n+\n+\t  if (!(IN_RANGE (offset, -0x100000, 0x100000)\n+\t\t|| offset_within_block_p (x, offset)))\n \t    return SYMBOL_FORCE_TO_MEM;\n \n+\t  if (SYMBOL_REF_DECL (x) && TREE_READONLY (SYMBOL_REF_DECL (x)))\n+\t    return SYMBOL_SMALL_ABSOLUTE;\n+\n+\t  if (CONSTANT_POOL_ADDRESS_P (x))\n+\t    return SYMBOL_SMALL_ABSOLUTE;\n+\n+\t  if (SYMBOL_REF_HAS_BLOCK_INFO_P (x) && SYMBOL_REF_BLOCK (x) != NULL)\n+\t    {\n+\t      section *sect = SYMBOL_REF_BLOCK (x)->sect;\n+\n+\t      if (sect != NULL && !(sect->common.flags & SECTION_WRITE))\n+\t\treturn SYMBOL_SMALL_ABSOLUTE;\n+\t    }\n+\n+\t  return SYMBOL_SMALL_GOT_4G;\n+\n \tdefault:\n \t  gcc_unreachable ();\n \t}\ndiff --git a/gcc/testsuite/gcc.target/aarch64/pr123791.c b/gcc/testsuite/gcc.target/aarch64/pr123791.c\nindex 8e394231a4a02dbb5bc1ad2a50775976c349593b..17051d7b2cdaa6b9477fb6ef2bb68ee791f28942 100644\n--- a/gcc/testsuite/gcc.target/aarch64/pr123791.c\n+++ b/gcc/testsuite/gcc.target/aarch64/pr123791.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -mpc-relative-literal-loads -Wno-deprecated\" } */\n+/* { dg-options \"-O2\" } */\n \n char *\n foo ()\n@@ -7,4 +7,4 @@ foo ()\n   return (char *) (__UINTPTR_TYPE__) foo + 7483647;\n }\n \n-/* { dg-final { scan-assembler-not \"\\\\.(word|xword)\\tfoo\" { xfail aarch64_large } } } */\n+/* { dg-final { scan-assembler-not \"\\\\.(word|xword)\\tfoo\" } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/pr63304_1.c b/gcc/testsuite/gcc.target/aarch64/pr63304_1.c\nindex 134fd469b87c265a189507c82b49f8ad08248e14..c5bc5154845cadefc2d15fcfbd0c38ef025d8bb9 100644\n--- a/gcc/testsuite/gcc.target/aarch64/pr63304_1.c\n+++ b/gcc/testsuite/gcc.target/aarch64/pr63304_1.c\n@@ -1,6 +1,6 @@\n /* { dg-do assemble } */\n /* { dg-require-effective-target lp64 } */\n-/* { dg-options \"-O1 --save-temps -fno-pie\" } */\n+/* { dg-options \"-O1 --save-temps\" } */\n #pragma GCC push_options\n #pragma GCC target (\"+nothing+simd,cmodel=small\")\n \n@@ -45,4 +45,4 @@ cal3 (double a)\n     return 1;\n }\n \n-/* { dg-final { scan-assembler-times \"adrp\" 4 } } */\n+/* { dg-final { scan-assembler-times \"adrp\" 3 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/pr78733.c b/gcc/testsuite/gcc.target/aarch64/pr78733.c\nindex 9de6fb6dc1ae3d7690ca41c9871a835eb4212476..8fc1b422a86616de4381ab10b8e9fb0b8c83b3de 100644\n--- a/gcc/testsuite/gcc.target/aarch64/pr78733.c\n+++ b/gcc/testsuite/gcc.target/aarch64/pr78733.c\n@@ -1,7 +1,6 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie -Wno-deprecated\" } */\n+/* { dg-options \"-O2 -mcmodel=large\" } */\n /* { dg-require-effective-target lp64 } */\n-/* { dg-skip-if \"-mcmodel=large, no support for -fpic\" { aarch64-*-* }  { \"-fpic\" } { \"\" } } */\n \n __int128\n t (void)\n@@ -9,5 +8,4 @@ t (void)\n   return ((__int128)0x123456789abcdef << 64) | 0xfedcba987654321;\n }\n \n-/* { dg-final { scan-assembler \"adr\" } } */\n-/* { dg-final { scan-assembler-not \"adrp\" } } */\n+/* { dg-final { scan-assembler \"adrp\" } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/pr79041-2.c b/gcc/testsuite/gcc.target/aarch64/pr79041-2.c\nindex 9de6fb6dc1ae3d7690ca41c9871a835eb4212476..8fc1b422a86616de4381ab10b8e9fb0b8c83b3de 100644\n--- a/gcc/testsuite/gcc.target/aarch64/pr79041-2.c\n+++ b/gcc/testsuite/gcc.target/aarch64/pr79041-2.c\n@@ -1,7 +1,6 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie -Wno-deprecated\" } */\n+/* { dg-options \"-O2 -mcmodel=large\" } */\n /* { dg-require-effective-target lp64 } */\n-/* { dg-skip-if \"-mcmodel=large, no support for -fpic\" { aarch64-*-* }  { \"-fpic\" } { \"\" } } */\n \n __int128\n t (void)\n@@ -9,5 +8,4 @@ t (void)\n   return ((__int128)0x123456789abcdef << 64) | 0xfedcba987654321;\n }\n \n-/* { dg-final { scan-assembler \"adr\" } } */\n-/* { dg-final { scan-assembler-not \"adrp\" } } */\n+/* { dg-final { scan-assembler \"adrp\" } } */\n","prefixes":[]}