From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116173 invoked by alias); 16 May 2018 16:21:49 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 116160 invoked by uid 89); 16 May 2018 16:21:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=hesitate X-HELO: NAM02-CY1-obe.outbound.protection.outlook.com Received: from mail-cys01nam02on0075.outbound.protection.outlook.com (HELO NAM02-CY1-obe.outbound.protection.outlook.com) (104.47.37.75) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 16 May 2018 16:21:47 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by BN7PR07MB4561.namprd07.prod.outlook.com (2603:10b6:406:aa::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.776.11; Wed, 16 May 2018 16:21:43 +0000 Message-ID: <1526487700.29509.6.camel@cavium.com> Subject: Re: [Aarch64] Vector Function Application Binary Interface Specification for OpenMP From: Steve Ellcey Reply-To: sellcey@cavium.com To: Francesco Petrogalli Cc: James Greenhalgh , "Sekhar, Ashwin" , gcc , Richard Earnshaw , Marcus Shawcroft , nd Date: Wed, 16 May 2018 16:21:00 -0000 In-Reply-To: <32617133-64DC-4F62-B7A0-A6B417C5B14E@arm.com> References: <1518212868.14236.47.camel@cavium.com> <32617133-64DC-4F62-B7A0-A6B417C5B14E@arm.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: CO1PR15CA0054.namprd15.prod.outlook.com (2603:10b6:101:1f::22) To BN7PR07MB4561.namprd07.prod.outlook.com (2603:10b6:406:aa::27) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:BN7PR07MB4561; X-Microsoft-Exchange-Diagnostics: 1;BN7PR07MB4561;3:ChYLLf6hu6FCmg95H7gsFH0W3bSBjFgVO3H/snRpxyKQeD7z4ufmeUuiEiVu/BCYoAZOR/NyAyzCPJvOE2xEzih53UssqvFM91y3t7WR7weF518YxQlHVwI31DW5Luvp1lo9nbBuTI7XERmeDaHQi9Mw7Px6E/AHJExNUx9IH4SCX5IdMATYjvoXJakbJ4DTXIPCGaNlSnt7Wm8MZBVWKfJDdfZIO5MnpB0/lpLPAQzQmr+pq5iGOW/Xy1EcwtMb;25:hKr4Aupeau0j1P/A1OlXy0V3/8VRiSVqzZIWTegqj6MISPOWRxKjHcx+7epO/AMTNHCeulGcU7Wsx242dZVpXXVszzmzbOweIeHtFpK+S3XVtsLFhRpVGrVyKomHFP/p0fuOW0O0585cbM55wEpE0D8HHR6MHaKXygOaPRMbbBmSj7/mNnt4Dm45qhGinK7y8QUr6FnsnPvUmVUtZhkzme7XDmWH/qk6Im2qS6s4cpDzH+ISTZb0TMKfLP/4BM7uxpKP1v7oL6Axfzz4Bo1RIpQUfOyjj2Rh6/2LW45MUB1Hjf2GB53fWf3rlLuyGmKuGyW7isUHknsP9cgp2QFFmg==;31:k22aPV6aA1Elk2qtdOXmIMIhnZZVr84J/6yLgzIRZj7z3hn9ej6oXWx293FR1Uf/NRJugAvE8e24X0/OTGsQjAjcG9KDpmH+/89Jv5+26IohRu/yOt/7xWz2X1yFEL/ScEF1+/6ETZWmIoRvyTeLSW3U0nivm2qTkYXJ9anAKu2LEjddkp/vZcz+7sTrsvRzZtgz3/ThJEZbmneW2eN9Q0Lz+eaFqErUTqwoFcNlHCQ= X-MS-TrafficTypeDiagnostic: BN7PR07MB4561: X-Microsoft-Exchange-Diagnostics: 1;BN7PR07MB4561;20:0qsgJ/66cK4vnj0LnSbafiVnpaaR4Ze1IIaZkmB5YxSp+FNeIOCAsj6pB5CWCN58u7S/23IuhjV3TSrWEXRSKMy8SNAVcnA0zC99x9BuCTSUL53mrGqiaijX3jjKSe8fiWL3tDiB5hUfJi7Aid0mPrqvH8AzDF3Sz3t1CHzgTn+RZqluqtImG+hRxkXPnhr92zi5OTYtcz6umlBbrE0U4OHZ4ogjK73yQMs7mkF+zCsLsj5cH2HvJXc1pqPSkLrjoZwOI9OiUt7a/9885vDXzu1y2NP6fUIAXpk0uYWn4QaJyBcDf+8Dgo7OCDd5sq+nwrADGgOPTOplsP1oEFFc0QUoRXq3x3CFbA/KVXXS+WNzyajr18TnkypmgbUryFAQBVSbMV/+4/8iHXui0KI72NA0Q13hE4jV3ouSVTSvkLcRQw1ic4hp6ZOmGJ0K20eS/xUQd5uK5JeJgMHN4AP4D803LDxuL4JpTE6ZLs6INS1lQTQpTNTF8hZxL+iaebDh;4:7D2Fmxnyf4+pap+bRcjwFhsiaOJH0IkmUV5LSdoaZSBoxgbpFJf6yA6jFnbPhgzj3/M0lC5tRh4/CHyC5Z1b+21IAnaKvjhQG9wGKsKlEIUjEKPBqdDzHP9rQmKrMiJcpmTpUXJm1J2Sl8Z/w6wPhVg+bLrIS6miOUkcz1dlLp10YoMKK04a1WCoq0k0pe5umLQzELdG6rxrM76dtHJZ59Y0VHLUiz6MH6P+VrG1nAbVd+fYWHSmOa9jwIVrGPNNX+zNiie5MehmUvc4unMddKcLp/mXtDX9unWuwGSdLEC3TkD+N5BYLlLSqtL1+6HI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(149027)(150027)(6041310)(20161123560045)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:BN7PR07MB4561;BCL:0;PCL:0;RULEID:;SRVR:BN7PR07MB4561; X-Forefront-PRVS: 0674DC6DD3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(39380400002)(376002)(39850400004)(396003)(366004)(346002)(189003)(199004)(377424004)(36756003)(7736002)(2906002)(4326008)(2870700001)(76176011)(305945005)(6486002)(81156014)(81166006)(8676002)(54906003)(6512007)(52116002)(23676004)(229853002)(50466002)(26005)(6916009)(478600001)(53936002)(16526019)(25786009)(186003)(5820100001)(97736004)(11346002)(3450700001)(66066001)(6246003)(47776003)(72206003)(446003)(8936002)(316002)(106356001)(486006)(43066004)(53416004)(966005)(956004)(105586002)(476003)(50226002)(6306002)(68736007)(386003)(3846002)(6506007)(103116003)(69596002)(5660300001)(6116002)(2616005)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN7PR07MB4561;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjdQUjA3TUI0NTYxOzIzOkFWbVBVK0FEdU5ZSU15cWpSV3dMVVg0dzN5?= =?utf-8?B?R3RYZThEZHZ6M2xYb3dESFZyVGNiUU8zbHljSXhDbXNmZi9Wd2F1SjZPdDM2?= =?utf-8?B?RGY0SHY4MnFCSmpLeTQ0UUlEaXQ3M2JvZENoUDVuYnlJcjVsRElCdlVKOWtH?= =?utf-8?B?a2xmbTRQMEl5c0hyZnNRVDYzb1V6RXRqcXN0WE9LSFkzVTVMeGJxeDhNWWQ2?= =?utf-8?B?cUg4OW4wMTNyenZMNmk4c25Nd05TR2JlZUg0SWMxeXNiSG12dzdWTDhoT0gv?= =?utf-8?B?ZkV6bHFaVi9Pa2FlOXB3T29sMytHTWx6aTE2ZTljQ1l5OStCbGovV3U4YnBY?= =?utf-8?B?eGZFTjBCUVNmbVRzeFQwL1Z4OXBuU3d4MGZCTTNSd3p2S3I3N3JRSFNXNnN3?= =?utf-8?B?bHdGbjBzVDh3VTZ0K2xBQjhoVEJNYzFuQktva2ZmYzhPMW5qUTRaZ1dGeU5L?= =?utf-8?B?amR1TW5FSFh0amNLYXhLaTJpZEp1YWJMK2JMOWJ2L0svcFVxRjlBazRnNSt5?= =?utf-8?B?aUZ0NVBqZHBCM21SaVcxMzN3VzVzMm1ZYnQ0K0ZRYXdZTGVkNUp3MG5NVlN0?= =?utf-8?B?SGplM29GYndJa1lsYXpGQ1lOdHBUa0VIcDVVcTBGTWg3M1dxNkhHRlpMd0Uw?= =?utf-8?B?d1BKcE5od3hoUXU1REx6N2pqdHUzYngvRHVHbktYZ2crRlkwd0NlK1I5dWxv?= =?utf-8?B?cldOUk05SjFFczhGNENUaHQyakZ3bk11VkgwNjRyS1IwMklmS2tEWlgyWG5K?= =?utf-8?B?NDJCVWNBakc0N1lLeWV3TjhWVG16c0tnOU9VeGdxd3RuZm1OdVlOTmZ0UGxj?= =?utf-8?B?cFBwYXlyM2MwVm05TGlTTC9aa1IzNXdwYUZxWTJpRmV5MTlyTVErd2dXaXg2?= =?utf-8?B?WTBNcXAvSDFpTjNaUGJ3aFVYcDBHdWx4N2RGZGd4SXplM2lyREdvQXdqa2dV?= =?utf-8?B?Nk5Fb0Y0ejUzY2lzNTNCSmZNQVBwMCtMa3IzYVlsc3Rhb3l5cjFDNFBQS0Ex?= =?utf-8?B?RHd0dEFuTUlKZTBOUFZsZkt6R2Y1b2YyT0RBekQvd0p2UWZMZ0J5SEh6blJ2?= =?utf-8?B?VWorakx5ZjlQRW91UFdhMnFtOXlzWnFDMDJENWV5S3lOdHpRQVB1SDlocytR?= =?utf-8?B?VS9BbDliZmhiNit3MmdBdVBqT1pXVUlvcHU0WXY5K2JEaWFnTEo1c1p0Wkx1?= =?utf-8?B?QkFYb21HWnlaRzUxTjJDd3BGMDVzQ1piYjEwdVZXcno4MmRWRUpZR3hHM3ZV?= =?utf-8?B?Y0gwUFlpY2tDYThOMTZvMnBJenQ2dGFVZjVLMDlLKy9rSUxwYW8yRnZ1QVJt?= =?utf-8?B?ZEdFOWo4VWY0UGlrK0Jvd2xYWkZVQ0Z4QXdneDRJVXZRRGdYSm5rcW1GL1VD?= =?utf-8?B?eUd3VXo2bkkxaVJMRHJTaWN1MUxHYVptUFZpWjlQMVN2bGp0ZWZVclV0NzJU?= =?utf-8?B?WTdpd0FkNlZZUE1QTUlZU2l2SDN6eUw4ZjhHdEhRUGFFQVp4bE1GTzZFeHFN?= =?utf-8?B?UEZTYkNPQ0c5eUo5QmY1cnlJVi9nYUNkdDNNejlYUHI1TytacHdJZDBSRnhn?= =?utf-8?B?aTJpS2srNnJhOVlCckFQa05ydWdUQmdzVlEvMGpIbkNoVVhBZjJ6OGV3ZExl?= =?utf-8?B?ZXl1UFlRdGVLWnBId1pVMTVyNnFTN29EOTNyWHUwdEdSbVV5WGN0bk9iRmNt?= =?utf-8?B?RTlmUmxUZ0JZalJRK1dsUjFmLzZpYWIwNzlHZDlmeDZNMmIrb2JIZlFVc1h1?= =?utf-8?B?K1JwVTNqU2xhWitjOUtuWUhaKzRzZXRvQjBMZUNpSG0zTEdMb2d2MGE4a3Zp?= =?utf-8?B?UVF6eWIxcDdNMVR3b0RsYzE2RVNiTjc5bXgxTDJxcmIwWWFJNDlTQUo3bDNU?= =?utf-8?B?dUtVcmFyOVFCWkY1QXpka1c5TEtseFcyZTZTYXFEK1V4YitsOGJMQmhpTnFB?= =?utf-8?B?S216aUxucy93PT0=?= X-Microsoft-Antispam-Message-Info: L2N1fhf7eq62JjFd+hWKtXMDJmHI76faQTk4mPmjg//kdYmqMmgdPc9akMjns64+70wqCDmHrM05LdJ2GYOjz/ncQwKWF4F42PVsJfO7uujt9/zCHFrVArKTMjgaSjggpSrhf9tDX7CsY2AN0RjmJ76JHxZjCxpnkwt+yxJcrSXgEqiN/TBklRQ58LzZ1Aze X-Microsoft-Exchange-Diagnostics: 1;BN7PR07MB4561;6:BRr1a2t8QDBqmRIko1zPUrTU/egrVRSPdd2mIQz1FKrRrI9iFZgCU1tmdjAe2chQoZBGecKGSTYqvXcUJwC0jDzno8C5SOxXl6lKQgHQDAKR3y1P4qAC/wY9f4j8zd077e9D+7pHb/fFZARjWe5g/iA6NW3e4vammOU+W0jHGLMDcyRLZHFuli6Gu4Eaz6RToSYchuanOuuWoTnOgsn3KF8zkLkPlXz5YTemtnAULXFqzrUckDkzfRnUdG2u8Ay4Uu3Kuzk/SdBayUZHOHbxnbIctf4a315PZgPpz3zT0afrk7GLMP5yYXmH52tGN86zpQj5wugy1+m4PM0Esk7Ua7YgznPIkyK7aBu1iNvd67tvJ/3eaEipXDfs7jeCFB8kL3tW7AQ+6JwMGv8rxx5Yf0iCbDST293Q6e90yJPL+7l2zHA+/3AG1fGfzdaIrEH7pspGID/nJ3oMX4T5NVQFDg==;5:2N7aAQcB5UYZ3MQxpIBLXg6wbNRZmHsXiEaaXRD7U74L9FxVQRY8MJxb9IeSgHR1NpjSg0FYBeoOlwMvKKu4TdCn33ma1OK9Il5B6YHv3e7GWPRGrDM4+jWyA2H9iAd42hiLlO9uitlgi5575KYmDdkFfNIoYnBYEfRH+gle4aM=;24:Gjf39d8G7AkMtoQsEBGJFxojb+rjk+fXS9gPf6jQbnp9NcRm+U6YcPwRfzVSD5Ry/0smNZGiCGlcrusPLBrAEwoeFCHwIAlD8kYZoqSFgWk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN7PR07MB4561;7:6jo8kTKVjbIFVyg1LlVcRQ4+UNeFXUOF2e+fpiXXBbu8HYCP7DZLxVl4kZUKMnJqFH3kogJsmu4JLK6a6uLNiz9Coh2fJ7J1wWp7k4nCIjzUfADIf6P2WP0L2n3HcONvIs+u8taY34HbQxwy/WYb4Fr0NBZAbadJLt0ky77/y9A5hyzhmqAhFHURgDJquxt6KGc1ZH09DL50G/iIPt8sbtxArXu3IXa6fO5gaTjwbEVgKQcrFDuiMFAS62CR59zt X-MS-Office365-Filtering-Correlation-Id: 2c9a6cb3-9b4f-4282-6b2c-08d5bb491d9b X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2018 16:21:43.7462 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2c9a6cb3-9b4f-4282-6b2c-08d5bb491d9b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR07MB4561 X-SW-Source: 2018-05/txt/msg00136.txt.bz2 On Tue, 2018-05-15 at 18:29 +0000, Francesco Petrogalli wrote: > Hi Steve, > > I am happy to let you know that the Vector Function ABI for AArch64 > is now public and available via the link at [1]. > > Don’t hesitate to contact me in case you have any questions. > > Kind regards, > > Francesco > > [1] https://developer.arm.com/products/software-development-tools/hpc > /arm-compiler-for-hpc/vector-function-abi > > > > > Steve Ellcey > > sellcey@cavium.com Thanks for publishing this Francesco, it looks like the main issue for GCC is that the Vector Function ABI has different caller saved / callee saved register conventions than the standard ARM calling convention. If I understand things correctly, in the standard calling convention the callee will only save the bottom 64 bits of V8-V15 and so the caller needs to save those registers if it is using the top half.  In the Vector calling convention the callee will save all 128 bits of these registers (and possibly more registers) so the caller does not have to save these registers at all, even if it is using all 128 bits of them. It doesn't look like GCC has any existing mechanism for having different sets of caller saved/callee saved registers depending on the function attributes of the calling or called function. Changing what registers a callee function saves and restores shouldn't be too difficult since that can be done when generating the prologue and epilogue code but changing what registers a caller saves/restores when doing the call seems trickier.  The macro TARGET_HARD_REGNO_CALL_PART_CLOBBERED doesn't know anything about the function being called.  It returns true/false depending on just the register number and mode. Steve Ellcey sellcey@cavium.com