From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NOR01-OL1-obe.outbound.protection.outlook.com (mail-ol1nor01on2068.outbound.protection.outlook.com [40.107.224.68]) by sourceware.org (Postfix) with ESMTPS id 2A50D3856254 for ; Tue, 4 Jul 2023 12:38:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2A50D3856254 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=westcontrol.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=westcontrol.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DNDCpFeSgLrsaNOcFoNafGBUcRuEkTrFqpJbsLdVtc142MZTq7e2YrM/z5ozK5lYC3obyeeeS2w0NlEKC3biOjwDhZ6F+lnOEUP9BWy4uQv1WP35caYRtUety70v7W2nUWOJYoTaqb7dhsqlz303lu2EZo1BA3khmUwY0Itz7xWsLcx3QHYawINxaQf/mbH4FWCNSmU95I323tM6tPN1QdciUfi8wSziUehCAkdZf7IsnUHxflplmAM9ZRW0ZcbM7vBO1R5O0e8hJ3WZn5woMNrXjEUf6DNcikP0xU9lNGjEpPxaBbQEN0MFCyZYwnwA6Czu5CTU+j6hCnpjT0ffFg== 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=aHN8fHOaTGTMMHmGP2hcDUuoQFeN57VPZT1dq9jZoJ4=; b=PD80jo5aP1QUMNjeDOf80SyD55EoLQaXoTWJFLISq7gqqKCMp/h3NXF8CajAvS3ADm7b06E7m/qBdu4wKjGnwW0vniUEPYs/+j+X43U67atzuGf1Mtkf9lq48uGiwy/bN2CfPY6y5KN3lI4EQsB415PX94Tp9RBYghFZy7N+tCgKNnw+Iybk1jEdFKMwoyN8FrbwbmBGlrENJ01kABv7RA3ATCbf+YWhz6YexXxY1Duu5qrpzghoie0AOXZpBHvy0aDKy8wY7PARkHqb6EkhKqe8yCTAfOBu16GXIbTAsgFzjoscGqN7B+AJaPc6s0Q0RpMVD+hiQSBLMo0tnOw3eg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=westcontrol.com; dmarc=pass action=none header.from=westcontrol.com; dkim=pass header.d=westcontrol.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=westcontrol.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aHN8fHOaTGTMMHmGP2hcDUuoQFeN57VPZT1dq9jZoJ4=; b=mwSlfOEwdoXzIr48MwZ+19K3AhyJ43GyM6z9fZZ9hfkggW446zqNQs0G3MDn7csb2th4Tiea/TPsBB6Uilvfb/oIjASWNKIT0ZXtmMTg4zrNePi2FbnhYKSPHEG5ktTjeIjvHf2prUXZzpgaIr+Vgi3tyxna44DnsDTbtzFNeJ8C+JFMFUoVkWGpZ6tlvu58XxQFPAWdN4+o//x0DALkZH1xn5ewed8oO7N/2In3jRjOnv1xl6/X2d7QMpiPijHa4Gsc8JFZDZgZ0WeWVZXfvOLUMEgwbV5dEF8OGvAVEY8FZygqVqs5P/NYAvpmT+FyRNVa5n+QOmXLDHxA6aeA9w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=westcontrol.com; Received: from SV0P279MB0233.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:b::13) by SVAP279MB0317.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:1f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 12:38:38 +0000 Received: from SV0P279MB0233.NORP279.PROD.OUTLOOK.COM ([fe80::b999:1d1d:3eb1:b8f1]) by SV0P279MB0233.NORP279.PROD.OUTLOOK.COM ([fe80::b999:1d1d:3eb1:b8f1%7]) with mapi id 15.20.6544.024; Tue, 4 Jul 2023 12:38:38 +0000 Message-ID: Date: Tue, 4 Jul 2023 14:38:37 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: wishlist: support for shorter pointers Content-Language: en-GB To: =?UTF-8?Q?Rafa=c5=82_Pietrak?= , Ian Lance Taylor Cc: "Richard Earnshaw (lists)" , Martin Uecker , "gcc@gcc.gnu.org" References: <439affd4-11fe-de80-94c8-6fc64cbf76ec@ztk-rp.eu> <112e711791835d56cca38654f83a009cb46707d4.camel@gwdg.de> <940e9ae5-8649-5a28-e29f-06f0b2982892@ztk-rp.eu> From: David Brown In-Reply-To: <940e9ae5-8649-5a28-e29f-06f0b2982892@ztk-rp.eu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: OS6P279CA0019.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:33::19) To SV0P279MB0233.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:b::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SV0P279MB0233:EE_|SVAP279MB0317:EE_ X-MS-Office365-Filtering-Correlation-Id: 274a10a7-b14a-4dcd-249d-08db7c8b9735 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: W6b7gycU6OeVa/Eqyse8RuiRmRMe4u284AUzhFeRsURYzXFlrgdrNnT1EbgTc8nSqKl24rGXUc7xPuuN5nB5Vsk3I2w72eaVRE/vMWhEh7B5ibH/OmKzkH/Xi5EF+/y8zM32ZSaX8I1zeGbMMe7X83Mi3xNK0U+YI7Qh2t43HRYoUC7MgDOkoFERHqMOljztxl3hIpmBt0wRlOOTKf68RN9dn6Rs1dgUME2DHShhX5W6VCDhEk5i1hCmEXuf1OF9o4n2mjgU5tIq7/JRHJRsXhhrZwuGaBsQPhj08FzoePfW+4uCHg+8KU+TUQ9gekruULcy+R5rz3g7OCjYdU/lPRqPeUQ4vUuj1wkikgXUDZnPibd/fV0lF2qE5+xqoL/lqNQGHE8qzB5ZUPOa/mpQyjY7sgDTEyYso4DjQDMrSb5gFw+CqFGLQlvtPk+4yBfYwNLOXvPm0Xf/qgQnh5ESASKsMzc8sdFaSL2sQd/ZonCWt/UrKCLru9vqSx1mdC7mEm7Fu+yjZOHqeFHqDRyC6zi/Q1OlMrz4X+5s1NSrM4dcy5yFSNmweDnYrvy8+mk540N1DY24Oq/5K5rt7DOim8tZSU8WwDQR5L0aGvRLO04= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SV0P279MB0233.NORP279.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(39840400004)(366004)(346002)(376002)(136003)(451199021)(2906002)(41300700001)(5660300002)(8676002)(8936002)(36756003)(86362001)(31696002)(186003)(2616005)(478600001)(31686004)(26005)(6512007)(966005)(6506007)(6486002)(316002)(4326008)(66476007)(66946007)(66556008)(53546011)(54906003)(38100700002)(110136005)(83380400001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dnJ1ekNDb3F4MGExeGV0MVdMTFl2WWpmNzNQUGNYOTFDMUdYcjFhMUxlWWhW?= =?utf-8?B?ejZQQW4vT0UxTEw3SWkrRTFyejc2V0RPelpFb0ppOGkvMFFyZ1dIN01SZFVS?= =?utf-8?B?K3M2TlFUMHJHem83STBadWhkVFh1WVNiK0FXa1lUYU5zK24xMkdGYkFlMDNY?= =?utf-8?B?UktZOUpyeHJ1WUtacXdaY2VRb1Rrc2E1UFpIY2RtTGdRa2hqTE4rRVdRWjZX?= =?utf-8?B?TUw2SkZYcENtR2lCNkpncmhYdVcya3pjNFlKNTBFMXROMnl4UHIxQ3ZXRC9n?= =?utf-8?B?T1k3eGFWb3doaXN0WmhHVm1YUjlmbzFFVkprR21CZFBOdE52Z0JwVGFITjR4?= =?utf-8?B?SExIY2phYnJ1alRLNXJUOTBzVzV5aWF0TUt4MW5JaTlYVjFtcnZaWG9EYkdC?= =?utf-8?B?SGowd1hHcUIyNlR3eWZrT0Jtd0o4bHo2Mm1ld1pRZzQvdEJvQ2MzaVpDQnR5?= =?utf-8?B?em1yZVVpSEpjRytkeW02RHgxeE5kU2kxc3c4RHVyWGJrcG9KZXpHeFpDWURo?= =?utf-8?B?bEE1dFE1dUJ4UzFmbDBhSEhNUHp5cml1YWlyL2tVa3lmNmNPcGFIUFAzZ2lM?= =?utf-8?B?V21uQmprT2llczhqNVVSZWxsSmJzZ2VDT1lnRmtuTDM0ZWkxNEsxUERsK3p5?= =?utf-8?B?UEZTOE1DSWZhU0pMMnkxaFlMbThVZWs2clZkRkhzZFB2eXhId0xXZGRKVWVB?= =?utf-8?B?MFp5Y05EMnlLTHVqQURUb0hUVUFwbDk3RVh2c0lnQkh5S2pWN0l2N3ozbDdP?= =?utf-8?B?TVRwT1AxU1VJSmVqeTNHVmIyYW9BTDl5dGhlcDRJS2NVeWNaMUl0YUhCM3FJ?= =?utf-8?B?OTRYdGUxbTZHOHF3djVBQmZsTGdGeGhNcXhLZWZ1NGF1SFhYMWJoc1RZZTdl?= =?utf-8?B?amhuOWZrNU1BeHR3M3dLeGRBL2l2a1I5Ny90cEN0SFZHa3JENUZpN2szOVFJ?= =?utf-8?B?TEgrWnBsQXFpbzl6dnJRbENCWEZINGF6alNFMXlIakovQk9hcVZDVnU0b0JR?= =?utf-8?B?dytzM2R4bUVqWlVzWThVbkE2OGM1dkdianZZUG1yMEJjaUprcjQxSWxSSWRL?= =?utf-8?B?a0lHcHBQNnNaUU9Scld1cGYyb0J6VE56UzVDN2xZNFp1UWVEWGNEU2xnZTEw?= =?utf-8?B?eDZHa0JQOXNheDFqdWhZRThZWDJvYitoeDkzNTRZQkpCZFN5RkxkcHZVa2RH?= =?utf-8?B?SlVrTXRYSXhjcTgzdldmK1pISEppL2tmd2lMQ3B0SDZDRzB5MS96elRSUGxD?= =?utf-8?B?SUZrNmVaNFZwUFBXSzBhMGFIVlZ5NnByY2hIa1pnUnhvNmJrNVNqUE9SanRl?= =?utf-8?B?UTFIVHdmRWhuSU5IeHRXRkNWV25ybGdGU24vOTBUNlQwT0w5dU8yai92cE9N?= =?utf-8?B?QlpMeHJabHlnaS8yc1l3cEs5U2psN2lxV2dnUTBuTDMwYlhCcGZqN2U5bXdr?= =?utf-8?B?SWZYQi8wcmpzNmYydHV2M3lTMUZCZklGVDZHVWNDOVVKcU80S1NlSU1CMmEv?= =?utf-8?B?R1V4ZTFGczVsakoybWxKWi92S1R0VkRFTVpKMXgvZm10VmJqV3Z5MWk3bFJC?= =?utf-8?B?eHBqTGsrM056UFgvNVN3OGl1OUlqdUVZWEIrZWpFeW1ubmc5NFBJbEdId25a?= =?utf-8?B?ZWkvTnlONTVjL1RrVDFKektscVFQQ1I5cXZiS3Z4QXkxOVdIa0VUWmlTZHFi?= =?utf-8?B?cjNVVmpnQVg2NktvRGRsVkxmNEFZYnRkV3hoVTROc2YyMlhVWW5Rc0tPRlIz?= =?utf-8?B?NUZBM1pnNG1lcHl1ZnRuTUorSHFtNVgrU01mekNDdWFUQ2xxeEdFUlhPS2sy?= =?utf-8?B?N0tPWmFYYWlhWUhmbVJpY2FTVkxzNytod2ZONEVnYlJrUmd2SmpRbDBPQWZC?= =?utf-8?B?TkozdUtrbXhxN1dPcDFQSDg5YVNJaEoyQ3VEanY4U2g4TEdNaHBnUUxlck4z?= =?utf-8?B?cG5KMUhteHJFOFhLT2Z2c1cramR6ei9jVkJiOVJMSmIrSDczSFBzWHZYbDlY?= =?utf-8?B?akFyZ2QrOFNKYlVvMEJtTktHbTBsNE5TZ2VkSGVLNEMyOWhud3ZmWjZtQSty?= =?utf-8?B?SWI3cGZiQnFrVVZhRVBWV0hicnA4NGFrTkF5Uk52Z3hVS0s4OG44djJqcCsr?= =?utf-8?Q?Xs3e5qU5K2AENwqnF+sZgw7Wj?= X-OriginatorOrg: westcontrol.com X-MS-Exchange-CrossTenant-Network-Message-Id: 274a10a7-b14a-4dcd-249d-08db7c8b9735 X-MS-Exchange-CrossTenant-AuthSource: SV0P279MB0233.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2023 12:38:38.4896 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c75fbd3c-42ad-4db0-9cff-972faf83ae45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jlbf+LcWXVPFxzdceRzjnLBJF8lX3EJBUoH6vBIc8FoOeBSQ9/W9lKa397+uzpAMjIXuXiAMZFb9gp4wF0kPew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SVAP279MB0317 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 03/07/2023 18:42, Rafał Pietrak via Gcc wrote: > Hi Ian, > > W dniu 3.07.2023 o 17:07, Ian Lance Taylor pisze: >> On Wed, Jun 28, 2023 at 11:21 PM Rafał Pietrak via Gcc >> wrote: > [--------] >>> I was thinking about that, and it doesn't look as requiring that deep >>> rewrites. ABI spec, that  could accomodate the functionality could be as >>> little as one additional attribute to linker segments. >> >> If I understand correctly, you are looking for something like the x32 >> mode that was available for a while on x86_64 processors: >> https://en.wikipedia.org/wiki/X32_ABI .  That was a substantial amount >> of work including changes to the compiler, assembler, linker, standard >> library, and kernel.  And at least to me it's never seemed >> particularly popular. > > Yes. > > And WiKi reporting up to 40% performance improvements in some corner > cases is impressive and encouraging. I believe, that the reported > average of 5-8% improvement would be significantly better within MCU > tiny resources environment. In MCU world, such improvement could mean > fit-nofit of a project into a particular device. > > -R > A key difference is that using 32-bit pointers on an x86 is enough address space for a large majority of use-cases, while even on the smallest small ARM microcontroller, 16-bit is not enough. (It's not even enough to access all memory on larger AVR microcontrollers - the only 8-bit device supported by mainline gcc.) So while 16 bits would cover the address space of the RAM on a small ARM microcontroller, it would not cover access to code/flash space (including read-only data), IO registers, or other areas of memory-mapped memory and peripherals. Generic low-level pointers really have to be able to access everything. So an equivalent of x32 mode would not work at all. Really, what you want is a 16-bit "small pointer" that is added to 0x20000000 (the base address for RAM in small ARM devices, in case anyone following this thread is unfamiliar with the details) to get a real data pointer. And you'd like these small pointers to have convenient syntax and efficient use. I think a C++ class (or rather, class template) with inline functions is the way to go here. gcc's optimiser will give good code, and the C++ class will let you get nice syntax to hide the messy details. There is no good way to do this in C. Named address spaces would be a possibility, but require quite a bit of effort and change to the compiler to implement, and they don't give you anything that you would not get from a C++ class. (That's not quite true - named address spaces can, I believe, also influence the section name used for allocation of data defined in these spaces, which cannot be done by a C++ class.) David