From patchwork Wed Nov 2 17:35:50 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Greenhalgh X-Patchwork-Id: 80520 Delivered-To: patch@linaro.org Received: by 10.80.170.210 with SMTP id r18csp228498edc; Wed, 2 Nov 2016 10:36:34 -0700 (PDT) X-Received: by 10.98.0.198 with SMTP id 189mr8953191pfa.75.1478108194342; Wed, 02 Nov 2016 10:36:34 -0700 (PDT) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id m21si4267740pgc.29.2016.11.02.10.36.33 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Nov 2016 10:36:34 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-return-440243-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-440243-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-440243-patch=linaro.org@gcc.gnu.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; q=dns; s=default; b=kWS/KaYOXib7Zcw7 woAK1XMzbMaVG5VaYHQTFh6y14/F9LB3yU+auTGrKKHr6ZlJmUVrTbrmGgiQ82pv UarOhg/VbyTj/YQjBSua0mUJ6R8Euct2WTbUqXBHNwzVsyT2TgpQUzDcsAMvrz4+ pRDdNXrwfl+cn37YzftHHTUNtrQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; s=default; bh=WofRbP+5+YlfLwL+azKhzj acHZA=; b=gtHJDXgVmt4tcO4TFPKzlxvb6Y+8NDYiQgXNPsc7NE5GKQ8SwBThHA YpNzaydnZMc6Hqsqc9I0BfqDtK+WeITdDVah7jip8MEvKqJj8zEerP7gfCse3QKx bdQfGXSPhhYsPWeZSeroonbfTTxWlGxj3fomnv7dc7+HsH1Ot2NXI= Received: (qmail 104624 invoked by alias); 2 Nov 2016 17:36:20 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 104596 invoked by uid 89); 2 Nov 2016 17:36:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=sk:james.g, jamesgreenhalgharmcom, U*james.greenhalgh, james.greenhalgh@arm.com X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-db5eur01on0084.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.84) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 02 Nov 2016 17:36:09 +0000 Received: from DB5PR08CA0021.eurprd08.prod.outlook.com (10.163.102.159) by AM4PR08MB1010.eurprd08.prod.outlook.com (10.166.134.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12; Wed, 2 Nov 2016 17:36:05 +0000 Received: from DB3FFO11FD053.protection.gbl (2a01:111:f400:7e04::167) by DB5PR08CA0021.outlook.office365.com (2a01:111:e400:52c3::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12 via Frontend Transport; Wed, 2 Nov 2016 17:36:05 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; codesourcery.com; dkim=none (message not signed) header.d=none; codesourcery.com; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by DB3FFO11FD053.mail.protection.outlook.com (10.47.217.125) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.693.6 via Frontend Transport; Wed, 2 Nov 2016 17:36:05 +0000 Received: from e107456-lin.cambridge.arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Wed, 2 Nov 2016 17:35:52 +0000 From: James Greenhalgh To: CC: , Subject: Re: [Patch 1/11] Add a new target hook for describing excess precision intentions Date: Wed, 2 Nov 2016 17:35:50 +0000 Message-ID: <1478108150-30810-1-git-send-email-james.greenhalgh@arm.com> In-Reply-To: References: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(377424004)(24454002)(199003)(84326002)(19580395003)(2906002)(19580405001)(305945005)(6916009)(106466001)(7846002)(2950100002)(26826002)(5660300001)(50986999)(626004)(76176999)(2476003)(110136003)(2351001)(8676002)(586003)(512874002)(8936002)(50226002)(11100500001)(92566002)(33646002)(4326007)(36756003)(568964002)(246002)(5890100001)(104016004)(189998001)(86362001)(5000100001)(356003)(87936001)(4610100001)(77096005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR08MB1010; H:nebula.arm.com; FPR:; SPF:Pass; PTR:fw-tnat.cambridge.arm.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD053; 1:h/dET1d03P7rzBeL0uDG8y8Ppu2JYYk3r6vAkxTqnxHraFgiopb/epmWikO7KimxjQlAoEA/oa5qIifUqf8/irSUOBH0eLLuga8Nnsrt5ikjwDUVlYIRsG9opYiRirD22bNlDmIGLaIW9RyHb2ZuvcojtZmQEKQUzVtAsGOcS3LhvUiIDQGu3nGb1HTqo7BizDvmm2aUAOc2A3SfYTXgLnp/s5+aBq0deMl7YLQ3yg5l5qgJ+k6igKAa+z8ZucKO9FDDH0/7HP0Mt4kFKmglUN5Vu/VI9JB192dGRjlztfHhvZq04Dcyp6QCo2aNZUSaiihvZrRHQ2CfLz+cyX1lKQ5q8dBz0K2Y+SM1Jnfqi5udTnHyOJUIH87s+zINioOej8xN7mDyJSBMmE1Dya+TzYPkvNLn3IxwudeRL3Z7mNJpyIuTg4OwndplCdrTEQS14hUiKklqb+GpCjNWU7FapeFz3ZCmxIeNMh7Jo6kbgCluvCsUH5vM0a18xV63zDYHk0padZPrE2fxPRO+XiV5K5WxQrgsPiUf4J0NSLdnRqY54Ly9HFCQFOinprSM5dgu56PcZ/i8aACZlBDUnRHj3ZCFBJgVVVId/F6XUpE+DpI= X-MS-Office365-Filtering-Correlation-Id: 0c76edde-807d-4531-d20f-08d40346b935 X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB1010; 2:0pnyiDTAioLOYirdiaSn7eWRS2GmyHJLODUhn/fETTz2txj0M2zKZfQAQUC+gMeuvGMn9E3F0S6HOaYhFsPk67hGbil8Um9bOVFVoUcxPx8jO5zfsGeJ7ZmWtw/6OntMS847UM8aAeIdUW9Tm/PPmvrw+PjQSzsq02EIhIbjyWBlKNZK0lhx4uMTPCZYLEysyxFK/qrzo89WELpaCEUtHw==; 3:4yCWl0J3jhF1rdGrLBXjfQQAtVuPyde1GfkzF52acqp4F34o8IT+79L2Kxh1deeUKaOeeMa6VWV3Rs2jjR46l52eJ3Qof4gm0VDsmJN1AFX8S4PUoD8bfuvMGYI9R4D3Mc/gXpXIHHWJKdXZWhDtjgG1MBsdPNJkbBjBT3Nf2GyZJyFnyClITmu0jJdCGcPDlBr1LRACPhM2t2tdt45RqcRaVaJG5tK1voRsXj7E44vDDp2Q0786SAFTFn7T9aZziSPohQpBw/j0ygXYlZJLF6n4fRlYnUab5Emo9LiQucg= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:AM4PR08MB1010; X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB1010; 25:An8L+vrUyla1Qh3z2iVbSq/Ic/EdcQ2svRJ+SrGCxKc37s75QQFmD5huMEphVklYzO/WppqxBH7jjTqEHGXaEKC8SsCzRKrE22qdNGCr4RcOoUObk591y1HpugRwaLffi5hLXvp4UPkoE5ViFtRq+TJ2Rfv6VqYXQ1wHJ0WHIqpX0ITybie36aJQ0qOmiDaHxzSlvMJSnAw7kbDy0kCCx+8cul7XK02pFIWVi4Cc8Hpj346gQ/IV7thFgHU7JSRUkJ3gbIbupAzY1rrKZmOkoOC+kucdBRF8IYbG9YwoeGoliPUZDPG/EiChXVCIOqcxEL5s64VzQjfMwLDNoJYwzM7M+rf3cubkZia19MALQUKlnZR1XPQX+Vu5r02v1Ntu1RlxqgHFPC2UK0Eu9pYLO8y+6tiUB6mLiBYrCIl776ZFq/pZAtNFx9R5ypWqVIIqsOGBiBCTT8VQ+FwwmJxbi3m+/dE7O77K1afrTBHa+e10MMYUxiOpDTQxJXE/12V6XosvRCRTZEBq/bvubuXpc5B3nqSOICGa4CVYKWaLwj6CyHXT9vE+Up0YvY9nGvMjRoMP7N8E4HrmJ148uL62JIJWEJRaygWYg0qeZE/eEw/WCR8GhyDzORsW8YOyAmIHtNyS9i0JwJng7gU0Ct4QSHVOmvuFCer04y5bCebMQJFWQdQc5LmtrDRx3ImSaCJh1rVFYqUy0d1cCdTdVDe36CYF++vrDSqgHPrMl3k31e0O4Fsl2ZO5LVgNM6LM35V6xAglQCqeL/pmFUtSJe9o1ruM6e4IG8pXRTwSerAfk3mS49J5SagkKecQl3B/6d9vNcYxT6JYXREQ9nTJ9M9IyVaGzBNj0Lqun6rEMa93piDSdtRSG8eDTnlrSWgHcErMRI87gYsXkDNoAgS9zbNIVMz9VzZRKC2UbQEbOKS4SgE= X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB1010; 31:R13aN+ygcbnRr/CVkp3kp1O8cEPXSjTCh6p5eKKXh73EI9Z1AzYJuAld2GqhOrwS/dYBu5K5ratlsLc2JOpN9eRRZJ2AOGJ6ojk/qufsp/nb/5WRQeqGZxosGcu+81uJmOl2Xy35MWJVny6KI+H/G1l9tAdYRc2NTIIdDqZzA6wSVkoZWjFEIKs4hWLmqjNJ/JVNBRIJ72ul/kiR+4XnuBRehKWFHWlTc27xVx2pBO9sdzOhthSa1V+tyAJscLgDS6lQdFArnJYGT8l9ost93ZTYkqBBJlsVZgyXhSs77uE=; 20:gvvBZQKro/uPO7gyKXPEwunpGxkt9rhAoA4FuqVtR0CkxNJ44A5kYPsDLo/lbp4QPpx6XhH4LiQbyLg2i+68C22uRNJYz2f7dCuAbBcbAfPLQRIlOii/tZO03+OC+K3pv66HsiOZrSrzCKjwZkvulBm/utUoxuTBK0eDEIKfdvSabnY2CDURuqGTnOu6FSw13OXp3xJBa5XD/fstIMZ++Uv9OsWjhttFLufiLuLlecEm/12HbE4PQaD7vxPTILGV NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415321)(6040176)(601004)(2401047)(13024025)(8121501046)(13023025)(13020025)(13013025)(5005006)(10201501046)(3002001)(6055026); SRVR:AM4PR08MB1010; BCL:0; PCL:0; RULEID:; SRVR:AM4PR08MB1010; X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB1010; 4:JbbZKz9o14BTuzZBg5e8AuwnSb8UoGouDGJRBBP4/A7qnWEeVy7FVPawA13eQk+Qd1Nda7QjPSTIoliSXDAALN1K+lHgj6zpQ2nUT6WbjBg1CW2uWhkmBizevg/tVymT+em9o90QkeUTC+r41Z4Vg8DQh3fiYZF0ZDrnBtdLv24CJPaWsXnZ0acprPysFh6u7KWwZmygBqKoZh9D/gYfwXV9L2InoaqrJ+K+dBaO3nuz19LaB3ssYBhh47JrDQIg1sxhCYm11pxeT+Pd+liQdm6LjJU9f2afbHALhuC8uR1QXC4WNi23s8aZupAapJNvZtavot1rOu+wwknSLu1B1dUyD8aO5W40LaZqvI5Slh6nAl3JSQjkdmBZpf/K2XuknIurc2GRUnIuuadtp5cIGUi6agJmlMPX59h8AXBg66kb5fHTeG3Z5yrlOYCBTf4M8pdBrANmnIU50NrTbJa8DQ9f7BPi+YTD2YyWPEKYwxXXRZUpajJ/N4gW0Kd35i+Nc4w0bw46abd9FWzbr1RXQh7x4w3ZMZ90sVQiLjRW3Hey8FBxBd4h2w87m6V0CK1K X-Forefront-PRVS: 0114FF88F6 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR08MB1010; 23:IquQnuGT088rjofGDji3GCQDALVhmTfYtokz8MCBV?= =?us-ascii?Q?+fk5KuKuQRmn2WrScDxyELx4xF0YzdRDgKIV8QzRsudjHu9lj6zSW3k8V+Rw?= =?us-ascii?Q?kGZ7NlzMMdjh06zse1LWkqe3dVlW2wvz7WHdJmrc6s795coA802u86Mg4W8w?= =?us-ascii?Q?ObUwqiOjiMENlQh6sJmmbMYQmApx+5gHtIVuPp6xE6N/8KPFxES0m45NT0RW?= =?us-ascii?Q?7mkFGjM+7Gg6zoRxfUAjDGzWpKNLJlbpNWLt6kv9BY1tEd0e92TuFG2lB6Pq?= =?us-ascii?Q?3TrJiiHAncLuE1WYijuzaU5sGA4oU8OEApkqCXUgoe3i99B7lII75oil/2mI?= =?us-ascii?Q?87yqTwj34zF0xSOk8tbR8/iF9w+JEJW9uuIl9SJUhHUjvY1OfuHmzn/kRE71?= =?us-ascii?Q?dbEONkOFznnJl7EliuUKYpmC6Rs/qu0+YhgPxaZZVKhkCx6BOQajIEwI9PPy?= =?us-ascii?Q?bfdj1pTeJYLCBVbtJ6h2dbroZBYHe7kurKmVI43d1lA++rpl1u/OkPKEudAT?= =?us-ascii?Q?Rh2uzk4YCCNkoAo0vELvAxDlfCzk0gjuw0h5jqCuIBMDYJds7ThPHaCD3WEo?= =?us-ascii?Q?fDqcXeEVaLcVNH5em2xbA3S/2wnfrE6cUjHVURy7JLNWSS4JL7AhjkOs2Vuv?= =?us-ascii?Q?N8aBf7t9NVvB9AqsrOliuVSJfWWhd8SPKyZd3zmiY8DZriwzsIGrfqQeWzSJ?= =?us-ascii?Q?usnjpmkMmM84V2cn4dnkzjKhz+jq1hUsDp054V0ItIaoL39IM3aYwKaDF+IM?= =?us-ascii?Q?Y7ZDFmhC7g+54KZOjreykgD9XJUOtyUuYwKa5eviQZvdFiX9Om++01X8SLmn?= =?us-ascii?Q?E4uClJoD+ix5AsW1SvqFcuTjavAuz4kZpp1dio1IHM0UKYtcXsOIDqglCsEl?= =?us-ascii?Q?8SLytwHmn4/dGfIys1a4v9YT7lXbqhIgo7rEZHvoVLXR3kcak0/x79g7gdKE?= =?us-ascii?Q?qzv2FkdXSSQCxhaAUsXnztZ43zkuqdxFYomDDw8FPCZRXm31MJd9g7/WYMxZ?= =?us-ascii?Q?eO1h1tWbuz955eG35vNYwTNRLmOKLfFj3i3XNg+42vZeu6VQBWHZcVgrWngN?= =?us-ascii?Q?W14/FUAz4U/6sVIL0YexAhFRtKNCG34nsf0yiAgFtbBHVhZx91lYZm+aCAos?= =?us-ascii?Q?xw5KTkJL0KaiNFkPaiWnIMij78hnp1EUhQYJ/0KOWCCeg+PwGbP9Q=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB1010; 6:YbRT2CAnom+IVIGkC4AGItkyXeDJvwbO+46F8U9PqN+VOecWWwe7uNhz0mC+kdNP0UL72xBj+Hw7a/OMW/k2T9LFVQyyu1jWteiwALce3l1BDBwQPSlZM8/uVJh+euwV2wzbI8prxpz8V8L8i5q7ykqDK/BbP1W+LsGQVW2FjVgJ4wRMPLvewywujKDnhkw0IVZ/w4pMn0WfIhqZBvAVF9X/12MX+hJciQ0ft8Z4SQuxLLQu0g3P7mlc1vQ3Bv1wJPpRtE5hXsK68JMqkhALnIzA3c6Z7DgLxkEzjkYRXz5lLl/sIi7o6R8Ktpcz8LNqDgWzWAl7W8FIiAYhMKB2xof016I6UxG/iRZGnjN9dBM=; 5:2EzNrD5xxFKl7KsMvA9y2S8s2Ow15SopDWX5DUiK+F4tA+sLGhEsff71j6tVuW2RSEYjj+sV1HbUprvf2bufJiXl+lXdyU2WgTQo7Kri/h5M9emmkc6YDz84IU5nUZrt+J39ALq/MfJf1W2OyMJ+4w==; 24:D5SKQPu7SneNVlsCw0mnv/AsIuF2knaz2hyf5HxjLsID35TQy/JJjk03SvsJB4QyhYfkDR/PCS3u5bAjiUXChiC2SFpHz8S8H1Jm4mHDUnM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR08MB1010; 7:yeak4OD4yD+DXIzsZ2AxAQQ4uohSxn55I/xrb8hKM9aNWvgRX2yN1rHZvdhIh/2Rp/eand2nJnHxPxTT25mMAIF1PAXN0Yo8aTnx7UMok2Oo9To7/HnzRI9Y0ondFQ7EywZHtJ5/Zl4xd1xJJKEskF/Vy9XH8yWcai2WYJOdGQkwRpbrN2rnX9G57DfFWuWi7L2zuZFCL3AjJVxDBXZ3gUFu8D7kksV43F++9grh1R5ht8uVK7yVFgDy4E8qS50/zG1gjOc/ugWkErpIIwko1sSVvo9zE1ilmXjDEb5eZ9R38U8Iob8GGwMdWNnH/M0YuLhWHyvTGTqqs6bxt8j69TyBAm8Hj6cHDxbs1tmjlZs= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2016 17:36:05.3492 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB1010 X-IsSubscribed: yes On Fri, Oct 28, 2016 at 09:12:11PM +0000, Joseph Myers wrote: > On Fri, 14 Oct 2016, James Greenhalgh wrote: > > > + value set for @code{-fexcess-precision=[standard|fast]}.", > > I think the correct markup for the option here is: > > @option{-fexcess-precision=@r{[}standard@r{|}fast@r{]}} > > (that is, using @option not @code, and with the [ | ] not in a fixed-width > font because they aren't part of the option name). > Thanks, I've updated that line in this revision of the patch following your suggestion. James --- gcc/ 2016-11-02 James Greenhalgh * target.def (excess_precision): New hook. * target.h (flt_eval_method): New. (excess_precision_type): Likewise. * targhooks.c (default_excess_precision): New. * targhooks.h (default_excess_precision): New. * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New. * doc/tm.texi: Regenerate. diff --git a/gcc/coretypes.h b/gcc/coretypes.h index 869f858..09f8213 100644 --- a/gcc/coretypes.h +++ b/gcc/coretypes.h @@ -331,6 +331,24 @@ enum symbol_visibility VISIBILITY_INTERNAL }; +/* enums used by the targetm.excess_precision hook. */ + +enum flt_eval_method +{ + FLT_EVAL_METHOD_UNPREDICTABLE = -1, + FLT_EVAL_METHOD_PROMOTE_TO_FLOAT = 0, + FLT_EVAL_METHOD_PROMOTE_TO_DOUBLE = 1, + FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE = 2, + FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 = 16 +}; + +enum excess_precision_type +{ + EXCESS_PRECISION_TYPE_IMPLICIT, + EXCESS_PRECISION_TYPE_STANDARD, + EXCESS_PRECISION_TYPE_FAST +}; + /* Support for user-provided GGC and PCH markers. The first parameter is a pointer to a pointer, the second a cookie. */ typedef void (*gt_pointer_operator) (void *, void *); diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 0aed3d4..d1d1e76 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -947,6 +947,10 @@ sign-extend the result to 64 bits. On such machines, set Do not define this macro if it would never modify @var{m}. @end defmac +@deftypefn {Target Hook} {enum flt_eval_method} TARGET_C_EXCESS_PRECISION (enum excess_precision_type @var{type}) +Return a value, with the same meaning as @code{FLT_EVAL_METHOD} C that describes which excess precision should be applied. @var{type} is either @code{EXCESS_PRECISION_TYPE_IMPLICIT}, @code{EXCESS_PRECISION_TYPE_FAST}, or @code{EXCESS_PRECISION_TYPE_STANDARD}. For @code{EXCESS_PRECISION_TYPE_IMPLICIT}, the target should return which precision and range operations will be implictly evaluated in regardless of the excess precision explicitly added. For @code{EXCESS_PRECISION_TYPE_STANDARD} and @code{EXCESS_PRECISION_TYPE_FAST}, the target should return the explicit excess precision that should be added depending on the value set for @option{-fexcess-precision=@r{[}standard@r{|}fast@r{]}}. +@end deftypefn + @deftypefn {Target Hook} machine_mode TARGET_PROMOTE_FUNCTION_MODE (const_tree @var{type}, machine_mode @var{mode}, int *@var{punsignedp}, const_tree @var{funtype}, int @var{for_return}) Like @code{PROMOTE_MODE}, but it is applied to outgoing function arguments or function return values. The target hook should return the new mode diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index 9e5b456..12f6bc0 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -921,6 +921,8 @@ sign-extend the result to 64 bits. On such machines, set Do not define this macro if it would never modify @var{m}. @end defmac +@hook TARGET_C_EXCESS_PRECISION + @hook TARGET_PROMOTE_FUNCTION_MODE @defmac PARM_BOUNDARY diff --git a/gcc/target.def b/gcc/target.def index c3c87b0..9fc31b3 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -5430,6 +5430,23 @@ DEFHOOK_UNDOC machine_mode, (char c), default_mode_for_suffix) +DEFHOOK +(excess_precision, + "Return a value, with the same meaning as @code{FLT_EVAL_METHOD} C that\ + describes which excess precision should be applied. @var{type} is\ + either @code{EXCESS_PRECISION_TYPE_IMPLICIT},\ + @code{EXCESS_PRECISION_TYPE_FAST}, or\ + @code{EXCESS_PRECISION_TYPE_STANDARD}. For\ + @code{EXCESS_PRECISION_TYPE_IMPLICIT}, the target should return which\ + precision and range operations will be implictly evaluated in regardless\ + of the excess precision explicitly added. For\ + @code{EXCESS_PRECISION_TYPE_STANDARD} and\ + @code{EXCESS_PRECISION_TYPE_FAST}, the target should return the\ + explicit excess precision that should be added depending on the\ + value set for @option{-fexcess-precision=@r{[}standard@r{|}fast@r{]}}.", + enum flt_eval_method, (enum excess_precision_type type), + default_excess_precision) + HOOK_VECTOR_END (c) /* Functions specific to the C++ frontend. */ diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 866747a..73e1c25 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -2135,4 +2135,12 @@ default_min_arithmetic_precision (void) return WORD_REGISTER_OPERATIONS ? BITS_PER_WORD : BITS_PER_UNIT; } +/* Default implementation of TARGET_C_EXCESS_PRECISION. */ + +enum flt_eval_method +default_excess_precision (enum excess_precision_type ATTRIBUTE_UNUSED) +{ + return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; +} + #include "gt-targhooks.h" diff --git a/gcc/targhooks.h b/gcc/targhooks.h index 94f5e31..e00da60 100644 --- a/gcc/targhooks.h +++ b/gcc/targhooks.h @@ -263,4 +263,7 @@ extern bool default_optab_supported_p (int, machine_mode, machine_mode, extern unsigned int default_max_noce_ifcvt_seq_cost (edge); extern unsigned int default_min_arithmetic_precision (void); +extern enum flt_eval_method +default_excess_precision (enum excess_precision_type ATTRIBUTE_UNUSED); + #endif /* GCC_TARGHOOKS_H */