From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19273 invoked by alias); 16 May 2018 17:30:39 -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 19045 invoked by uid 89); 16 May 2018 17:30:25 -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=H*i:sk:a8761c9, H*f:sk:a8761c9 X-HELO: NAM03-DM3-obe.outbound.protection.outlook.com Received: from mail-dm3nam03on0045.outbound.protection.outlook.com (HELO NAM03-DM3-obe.outbound.protection.outlook.com) (104.47.41.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 16 May 2018 17:30:22 +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 DM6PR07MB4572.namprd07.prod.outlook.com (2603:10b6:5:c1::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.776.11; Wed, 16 May 2018 17:30:04 +0000 Message-ID: <1526491802.29509.19.camel@cavium.com> Subject: Re: [Aarch64] Vector Function Application Binary Interface Specification for OpenMP From: Steve Ellcey Reply-To: sellcey@cavium.com To: "Richard Earnshaw (lists)" , Francesco Petrogalli Cc: James Greenhalgh , "Sekhar, Ashwin" , gcc , Marcus Shawcroft , nd Date: Wed, 16 May 2018 17:30:00 -0000 In-Reply-To: References: <1518212868.14236.47.camel@cavium.com> <32617133-64DC-4F62-B7A0-A6B417C5B14E@arm.com> <1526487700.29509.6.camel@cavium.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: CO1PR15CA0113.namprd15.prod.outlook.com (2603:10b6:101:21::33) To DM6PR07MB4572.namprd07.prod.outlook.com (2603:10b6:5:c1::22) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:DM6PR07MB4572; X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4572;3:Wk+5tv+X+fjH4U1+rwc0Cs+qJ6nIl3rse0VJQV2gAcnA8zTw96YuCAAaEPKrLxZGCGR+poH4gEwehkJsLwKfGbTQ53ViySHbVjI3+8DLykRZ9OW0Vye0uaUwBIP47FUC35X1wf8XXY73RCGtpYAzOFc0cmkeUXG897oRRhoRcVMUWb1x5Kxl++GVtWLiF00WohS3Yhqi3jIV4mZH9zcarrImq3UmDtJmO8nBsLn2XhdtbEw3w39Ow/UKoAO/vBDR;25:5RaL5RipuBKU6ZfwiV5j6ITuSEGfdPUnxDbzXF03/h5E/YGZaD9pdgnrRzuGjNjEvvscuULsJOOAIXhUyzjL17/9D1kBifqEyOC4hTVyTRy08g42ktStTBeWlqaz17LPE5E4Hise7ZbOeh6wE1dzFhJfYA0yUAsxROVKTSg6Z/gXkbIFb/c+ot18a6Xk5SceeDfDBB92izyCfoWFb8huY6XDUgIQNr/uSKahf3HzAl6imnaZEQCmUojkJpoDB5A9jzkuuV2N9bdC+wdprI03RMNDmjk8Eeeqe9bhSizvCMIxNsje+M9KgOIPplxt2EMeqd5YnUb0pOnDz3xQd2+4Pg==;31:ClUD0XmeI3gCQk4AiztDs5luUtk65zpus4rGuHnMqZYJs/4YzKGj+oB0mwMcyejLiTPb42PX/70Vfnf2A67jF8z/i2qd+cxUjuFlOWtpwEeX/h5AQraG1F0lvor9QkGvoK6XH0EUoEwFipSBk6yQ+H5jO3NQK3sF+QP2xCLefZ2lR4wNwS8N5lQlhgn2DSiLFFZ0dIs26AlxhkKlTsciWdVSIZH/H6CN3Ep7wDN9loc= X-MS-TrafficTypeDiagnostic: DM6PR07MB4572: X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4572;20:X9nkTjlfhHBJ5aiKrLOgljxuCZ+ROIS2T8b3GUME7PUW3XqNALc6QQcX7oRuvTuRlq9qm9y+ma3/H6q4dGndEz0o6GzamcNR79oT3nZ2xi7SJnpLHsTMXT+7CqD9wmg470prSJ2eolWB/w+C4SM6scaXrOwTJFWReV0QJ6HR5qFQG3txEmt4+sUqeJ07xymnzJYhpkrK9P+boW8szJDfgB6mZ4R6kA5HhP/tho5t4O92+E2Op34ItJlsehyXV8HFTXRan3aVC7uAkw0opyTUfT+3GmtobO1y4tDleaQdnaJfknJG6myuQqFMkGJn1GG1Z2mmKQlpyO75gYeaoKIM2rVf1p4GOMKKms5advGT0YLyKPbBKDiEFTq3JcwijhWTJ/ulRj0j7ap3ye6RlUp/LTIYuoeEVbZD+l/J+l9W2FyJbuPE9d19xL7Fy7kYZQ1S4G9Dhot82rk1UtB5qU9rmEfwshqLaW/vujZi3fSrvDTCwKYXusIHfGrpsk/MFqRe;4:3ARNt3fKCbvC4Kjj9Req5Lh5GfWdjpFRSCmlPB6ha+c09m260TomqlZQMJnMjFRQSqM7I0t0tmXNUnum0vreg1xz1Hvh/hgrIIvKrs1/MezyU+YcWnwxUVhIH5BK4PuuqwkkqmLOGXPkroYIGtwp4GXEbgpx9dbvfD1iZvBZ9/dgpj6Fyd+bbOSGMfEk6aO0q3hLTShwMxpts8ZfbLKG1kfdJqO5uszP/0P8wGolxnWCtLzDmCYQZfupKoHZX3GXYzlTpq3fiT5WtjfoAKF3sg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(149027)(150027)(6041310)(20161123564045)(20161123562045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:DM6PR07MB4572;BCL:0;PCL:0;RULEID:;SRVR:DM6PR07MB4572; X-Forefront-PRVS: 0674DC6DD3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(39860400002)(376002)(366004)(39380400002)(396003)(346002)(377424004)(199004)(189003)(6246003)(81166006)(93886005)(66066001)(106356001)(81156014)(16526019)(47776003)(229853002)(105586002)(8676002)(8936002)(2906002)(5820100001)(50226002)(36756003)(72206003)(186003)(43066004)(5660300001)(316002)(69596002)(103116003)(52116002)(2870700001)(6512007)(23676004)(486006)(26005)(6486002)(4326008)(478600001)(7736002)(50466002)(305945005)(6116002)(11346002)(53936002)(53416004)(68736007)(3846002)(53546011)(25786009)(76176011)(6506007)(110136005)(956004)(2616005)(54906003)(386003)(97736004)(3450700001)(476003)(446003)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR07MB4572;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTZQUjA3TUI0NTcyOzIzOms1TUtmeU1TdDVIZnhScDVZM0RNdS9UTGcw?= =?utf-8?B?SzcwdUQzVm9wVVo4R3RHVGxFUVg2L3hEU3Q1cGt2OG0vTG9Nb0lqWHNERXo5?= =?utf-8?B?S1huT3FsejFYTlVVRk5OZUhIMUs3b0ZXNTljT00wdEFaTHY2VG8xb0s3UFNQ?= =?utf-8?B?dDNMaWpwK01IMWdQaDMwQXhmTVhrekR5V3lzZE9vcXFURWVaRjM4R2FqOFIv?= =?utf-8?B?TklKb2d6b1RoMFgxUC93OVZBVFgxVkUvRjR6UHhlKytKKzFqTVpHSkwydk5W?= =?utf-8?B?SnVvTENVb2RjdkZxV1VwVktKZmJlMjd2a1JHQU9GTWE5bERMYVkzaG1GMWJV?= =?utf-8?B?Y3hZSzJuS0RvQXNDcm5IaHU5SndIT1A4Wm5MUGpjOHNiUmkrQ3h2M2thQlRy?= =?utf-8?B?dm5QSGlHaEQvcVE0UnJrWFlHejdzSHU4VkxXdElWUWJNNjI1Z25leDltdkdP?= =?utf-8?B?aEF6RzJYcU5ud2lMMXpHeFFmQjdhS2x2ejMzcG5WY2VkcVZpakNCS2R3NTM0?= =?utf-8?B?WjhCTzM3VU5zcUVnMHFUTUh0bW1uRFpUYThKbjFXMkRjdFFsbWNuNE1IREVS?= =?utf-8?B?cnJyM1RPdCt6RTNuTE5qNGJsOU4wZTU3MGhzVUJCSTlVdytDaFAwYTZtNUE5?= =?utf-8?B?SDZjOE1CWkZseHd6M0tvTHhXeHU4TEdzUnVmaFgzUzErb2ZDYklMdHhjVVpr?= =?utf-8?B?c0NXQVVLTm05Y2ZGTWtqU1dqK2E2bnBLNFY4RHdWc1Z0YmR4aXlVNnNmU1Fm?= =?utf-8?B?dzBQMk16MDJTMGJQemFmNmc2cUZ0cTlNSTdzbW9EeFpJbm1ycXVMakl5bXV5?= =?utf-8?B?TGYvZG5tOUdrQXJJN2FvYmdvZTJCNTdwbURHakdMMEdEZ1p1UmRoNFpoNzZt?= =?utf-8?B?d2JnOE9taGUxdWZSdmI1ZlJmU2psV3YyUzlBMWIyamRCZ3JUWm1uMXJrUld5?= =?utf-8?B?TS8ydzFSbVcxYUIvcWRLaUVHTGVyV2JaZDM5RGxxVkhLV2kvVTJMS0g2S2px?= =?utf-8?B?K1hJRHd4NFAxMkVtUy8vNmRpZnB4MC8vK3E3eTZPaGMvaTVIZXcza1FSSXZM?= =?utf-8?B?NGx2M2twWWFHVkU3UFh3alU2MnhzbUtHYzhaRlVENDNOL1pZSFlPaG94cFk5?= =?utf-8?B?OGEyOWRvY0VpSFNJancxSmNPRWRURXpPdlo1RGg2elMraU04UGIvWDlVdjdt?= =?utf-8?B?TDhVZDRBMkJ4VzhCdHhHblBta1l3cC9KTTVwT1FxUURQdUhuUkZPWVgvZTNY?= =?utf-8?B?RXMyNTVvQ2pGa3VOTHlsSXJWZTdsVzc3U0srU0EzVFJkQTdPR2dwNlZ4a1dU?= =?utf-8?B?Y3JMWCtNRWdWVThqVXJNb1R3TGticlhSZjUyaTFQY1ZoRXc1ZFIwQnlTVXk4?= =?utf-8?B?VkJNbTNndFo0RnpNblB0U2ZRa09TUi85ZVZuSDlSZzEyb3k4ZElWMlExMHk4?= =?utf-8?B?dmZ6UkxrLzVTMGdOVk53c09WY3hTdmkzRG5CVGhWTDJHZ0EvcDBoakszTTdi?= =?utf-8?B?NjJ3VS9EVWE0V29udkF4dEdDaWtJRW5EYWk5YTF1VFJ1M2FGc1g2bHVQUGRN?= =?utf-8?B?ck5CNTF5RGErbGVuSzFtRXoybU1IS1JtNjdVSjh5MSs2NGJSWnloREs1bFJ1?= =?utf-8?B?bmhoL0psdXhWWUtjb1d0LzMxNndCL0hzOHVqRkdtL1pmeTVNZVQva2VlZzdV?= =?utf-8?B?QWJheHM3dEpYc3BlZVdDSnNxai9zWG8zOXhiTnlKL24rS1YzME1EcEhuRUlT?= =?utf-8?B?MHQ0T3orVi9ES2NrdGYyT3R6M3ZKd0Q5c1N2QVVRd0dXczlmRUoyaTdieWRF?= =?utf-8?B?b2Zob3h2NzVBNXg3MlptdkplKzVnNkFIZ1JzRk5BbzExV0tIVFhzZklQMWNV?= =?utf-8?B?Yjg2UVZKL3puUGFlSmtDTVdiYjJKNFNsdERwVmdZcTF5d3ZURHlIMGlockNi?= =?utf-8?Q?kSR6pI3uvBcjzGeBtzmccwpIZn22x0=3D?= X-Microsoft-Antispam-Message-Info: TQpc56QJyTie4Y6+dJTFZ+SBZ4Svo2l5/+zXNThIN2za36VrNcDSh07DvaaRYUomVE3UcKlYkk9dm9zwUa3aQDZuUytK66IYGA1Qy9pcGuZlpm/JLf8SGVhj4eCz6i7fgGR3uKDzkIyDaL7a4EHUuJJIYBWydoJbnKo/wofMdAzn5LwYehN/bKVe0KhA4iFf X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4572;6:O9DrOKL1hXo0qyzmKSuDsQXX9q5xJy1UE57P1Z+XDD48wlfl1stMwYZ1ZbCtqtI/9r8yf4I3ZpltdjLZU66rcsCEYhb0Msn4alhKZCmGq+XAuRb2p10tc1aF0cLGB7nkottTuYTW0rmYB96xftR/rj/NYr3gPEScxATzxI4CHOYIRNaGpu1JU+rX/xElPt78eUwDqhb6WQbpIAsgtcGmH2LpD8oDoUkGAZtHEwpWR236AkFVYopJsJ9hmpwpZBgCbmPKBOmjrxkmGPF5bSi58PD5t2O7tEq1YKHrmN+/UOPyE+K5d/+NMAOZZF57IXlKEYNcb80fzpzbJsOiLsYV2n57o70fmxFtxoirhgaPxOXtln7gtEzcu0wVOtfRkeZfTfiawe1iCm7NeHUeZsfnMaPzH2GF8ZvqKl+i4VQMbtBDmxZN9vk4bfXO9aauZo5Y+uXfMMKnWQX3YZLSHVAcTw==;5:7D+bXXE9weEzlMgUi3rLu8s5nJ6TnyISvVmE3HYjT0o+ptGqoJ0YK2IQuk6IA50c8fJdA90xKSjUUHGiLs6lQgyRZlB3KpdA04+CqSUUAN6aidl/u7Z8w84sL4UncVgKT6L9wcxYAscAiuKRfQIiMMA85EKfBdBEoabHM0Srh/M=;24:xfQOMNWWnG4QedXkWlU+lZ6OU+sgc3OR7rYJOWjZFQ5w9daluzX6e1C87bjmNGd30nObwt6dQeIHO0wExkL6m+DUHR/J748MxrWpdVEC4dg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM6PR07MB4572;7:92VemaEgvo1P/qwzYyzL12VRcjGAAuA0p9c3JkI3Fuu/TD4lJn5cBrwG4kcze0yEOA6wQgYnDpXn5NXrOaen4eadWxZfnmGZgJRt5UGOrHC4s/8gsUPIregXLxqMco391AhF135gC5OV6T3aTMBc+NzAYJ9gAH3hBa+U7RRDSHJoEh6Z3vu0D67DOCS0IUIb+QoMVrDkTbX5s0k9VXYL8GhwnU2J7T6T0BlqvLm5gB0S4UgC07KCO6JRw2tbgt8z X-MS-Office365-Filtering-Correlation-Id: 1b72f12c-2451-4243-876e-08d5bb52a9e7 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2018 17:30:04.5184 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b72f12c-2451-4243-876e-08d5bb52a9e7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR07MB4572 X-SW-Source: 2018-05/txt/msg00142.txt.bz2 On Wed, 2018-05-16 at 17:30 +0100, Richard Earnshaw (lists) wrote: > On 16/05/18 17:21, Steve Ellcey wrote: > >  > > 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 > > > > Actually, we can.  See, for example, the attribute((pcs)) for the ARM > port.  I think we could probably handle this automagically for the SVE > vector calling convention in AArch64. > > R. Interesting, it looks like one could use aarch64_emit_call to emit extra use_reg / clobber_reg instructions but in this case we want to tell the caller that some registers are not being clobbered by the callee.  The ARM port does not define TARGET_HARD_REGNO_CALL_PART_CLOBBERED and that seemed like one of the most problamatic issues with Aarch64.  Maybe we would have to undefine this for aarch64 and use explicit clobbers to say what floating point registers / vector registers are clobbered for each call?  I wonder how that would affect register allocation. Steve Ellcey sellcey@cavium.com