From patchwork Tue Dec 20 12:14:21 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Greenhalgh X-Patchwork-Id: 88590 Delivered-To: patch@linaro.org Received: by 10.140.20.101 with SMTP id 92csp1687386qgi; Tue, 20 Dec 2016 04:14:55 -0800 (PST) X-Received: by 10.84.143.1 with SMTP id 1mr42398446ply.86.1482236095560; Tue, 20 Dec 2016 04:14:55 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id o32si21977936pld.152.2016.12.20.04.14.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Dec 2016 04:14:55 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-444839-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-444839-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-444839-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=J9DK6fw1/htRgjwZ Z4YLrjrR49+S+sf+cc6dfI+L9fuBzLGOLBISJ3+TYpgv6MAJ4x7gOLc5PbyMXHvz eGZZbCeJhYdowgH08UqR4ntBeZSijBPFBkl6ZynudefePewxf7qHYfhwm9SPn+Oh v5kJ6FewBKW3uYpc8n611iyNKKM= 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=JSqT4ip0v6xKZVBM9jNDYd 8JpR8=; b=hQTYFkPoZhcJhD5NkF6L/JVVbnBYphG2An7a+9zuC5r93eeiSefd/R P8MLAYgCMoJIy1bBf+NdoiUY1pIBTg3S10R/XQF1+j+sv9xFnDWLWyu5LkHHed0H qrYQ1Bx5rLrwltNYRZ7dspB/QX2NSTvJYGneMDczGYjpAl6LPUU7I= Received: (qmail 124673 invoked by alias); 20 Dec 2016 12:14:41 -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 124656 invoked by uid 89); 20 Dec 2016 12:14:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=unpredictable, james.greenhalgh@arm.com, jamesgreenhalgharmcom, U*james.greenhalgh X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0051.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 20 Dec 2016 12:14:29 +0000 Received: from DB5PR08CA0006.eurprd08.prod.outlook.com (10.163.102.144) by HE1PR0802MB2570.eurprd08.prod.outlook.com (10.175.35.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 20 Dec 2016 12:14:25 +0000 Received: from AM1FFO11FD003.protection.gbl (2a01:111:f400:7e00::144) by DB5PR08CA0006.outlook.office365.com (2a01:111:e400:52c3::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11 via Frontend Transport; Tue, 20 Dec 2016 12:14:25 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; gmail.com; dkim=none (message not signed) header.d=none; gmail.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 AM1FFO11FD003.mail.protection.outlook.com (10.174.64.85) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.789.10 via Frontend Transport; Tue, 20 Dec 2016 12:14:25 +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; Tue, 20 Dec 2016 12:14:23 +0000 From: James Greenhalgh To: CC: , , , , Subject: Re: [Patch] Turn -fexcess-precision=fast on when in -ffast-math Date: Tue, 20 Dec 2016 12:14:21 +0000 Message-ID: <1482236061-32484-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)(39850400002)(39840400002)(39450400003)(39860400002)(39410400002)(2980300002)(438002)(199003)(189002)(377454003)(377424004)(54534003)(24454002)(36756003)(246002)(5890100001)(84326002)(38730400001)(39060400001)(2906002)(189998001)(4001150100001)(512874002)(106466001)(568964002)(86362001)(77096006)(2351001)(4610100001)(305945005)(26826002)(356003)(104016004)(626004)(76176999)(50986999)(4326007)(8676002)(33646002)(5660300001)(6916009)(8936002)(110136003)(2950100002)(2476003)(92566002)(229853002)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0802MB2570; H:nebula.arm.com; FPR:; SPF:Pass; PTR:fw-tnat.cambridge.arm.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM1FFO11FD003; 1:xauJJ8726gKDAd6ZrPRCoh+zq9Xlx7nsxpIayauq1fpY/vB2uwfdb6WzYw1e4a4I05uWezgGLOauTA/J/MRF3pFpLEYDTJ6DdemZ83ai14UNkPsM+ETrCIGbmCPZvnTPzmat1/lK3e58C3PEgpBvGpmpPSJY3+bX6Lm2zhNM/o3JwzIm277GpUiG9wFRp0TEHDm3hLZg0ehxoQj0Tiy8Jfz8y9MzlE2CKGHhJyi4C10R1EAsxRf/qMjJf3U5jrH+9D9aGd1+luBCfs161H6gFrc6tca+xRDWkc5Xirr2pZcSozgfCAmTpV/8avEdZhSJ5qEencD1Bcz4bBSTamI/obaoHXI/oq7EMqU52Px22UgTs8KUppZ9KS/qoac9yTrjkYnWjfHFZCBD0XbNEqnQ5CEWEyQhyht74YGLTDUvOfX7lvx84Fdl6is1ABBdRWUsjEG5BjiYHvJNH1nt5kK5EW0tSSrIyW/ay7KskQyP/cExTTJRNPNDZjom8b/tqIgMJG19hkpCtgurdsJOo4e//CbVinq8OpwUMwmFtg0ss3Qqd/fpQ6inFlv8cgbl1qzFJX7gWBE1BqwjM9Cgv6FkGCrcuZ51SGSKrgA6ho8wRsA= X-MS-Office365-Filtering-Correlation-Id: d67ca119-e52f-4357-3f8a-08d428d1bd5d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:HE1PR0802MB2570; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2570; 3:4V90CWQPiOoeI4kHwtT7z1S4hTn7phjPj2lMRPnEBBIq3yRubR3WfBW7KGmeRm0+pgmP/jgX0q8PljZ/DyD5tBVAESXL13reUUI2dOx0tibOjG+WZA60uz4iCbd9kkieg5ZJCmBnQUZdd59SHINS/zhG0cPM0mL/NtEMtCF8M4dZKooqm4TLd6BGPDzRkJRgt6LJlTojNFfxwiQ1c6qVUOXmZu7UvkIRMo0F+W86NjQxf44nkgUy3fTmgrm8Jeeyhfj3qAHoNwvqIDbxMvwNtWNE9/wrzBhroe/8EIDJdPNlfoR3RB6HwFtAfK3UTxYo1f61wIFwPt2TqQ0eMgXntEJ8t+x+Qj2wTfz0wag9uzSCY6KO+is5ZKDgFa20670kvnVIHcJ0POu3xk4deu6M/w== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2570; 25:dGPU7b6GO1/50qpxJvu1bZmLybrgSzxGkhKb66U?= =?us-ascii?Q?H3AaWZ7P4X7ar2DFCnWUuq1NfVzkgmljvYlMoxMeuooiOGt16ofSLltn8rA+?= =?us-ascii?Q?eCwOl00+p2yPz46KAJEaFTNvrtN0yhcIqBstQ8/VJciSlOvwwZRrR9FR9W0k?= =?us-ascii?Q?BBP3/BSWluFt9nfDit0ltgOKsaFuT8wNOzAcpARSMdKDgxNN/Wph/ltAvl2m?= =?us-ascii?Q?09K/pA5THD8BbCsFochWOAccluW9rwlkj/DI/uPxALcxJaMLM3EjDpF6BmzB?= =?us-ascii?Q?wBJ7DEEVWKTrRybNq24BXPNNj2sIyMu9eAQZ50pxeCgrr/ZYDKoqHFNVNBVb?= =?us-ascii?Q?o+nL33nfCud8/BoFTB6lDB3NpbtW9BSNRRl9vNqqyAkg/aKGf17BJp9R/Eqb?= =?us-ascii?Q?HuzBiI2qB4SVj/I7PolL31SDHSRxffFDJuiuGZ/kaC9hH+mTxXtXY4wBUDJY?= =?us-ascii?Q?45asEJS58ya8SNHj1tgEy2AW5O1ID03b0ahMDWc/Bpdcmkr0sKh9oHWZthIP?= =?us-ascii?Q?JTrFvikdxDLRIhEaEXe7RePiBkMAzaZUewbMNOCSoYZtF81RfusTW2r+yKFU?= =?us-ascii?Q?JULrXGKpGmjfWuB9oRblMJv1HySS+M2nnmtIJcRM8bJ0RjnEQVY8qFaefXeq?= =?us-ascii?Q?Wf/98nDDhsvPKHvnXn9RLn7ni4aIjZhQe93Ztby39oTKTYliryQsWpxpfdtZ?= =?us-ascii?Q?EHfYMHYgl0G2g/dvK1wL7T6FujcCUG7fbuzJ+TQfEC1ZHjbXTt7HIqqD+2vN?= =?us-ascii?Q?DcYomPnSUUFD0kIT5EBwGU95HChTSl6rNb3gDcQ2Qc8aC49ForIEXnuCaDoh?= =?us-ascii?Q?I61fQlXMRqfJiEvJRHdaW5mictlD3DEqPQufnKC4JBzkG0NP3krtTADvGQFB?= =?us-ascii?Q?GxgSTObPn9nPn62FUCqiWVG/fbaIRHicAM82HPseStG/dhNVC4oz6c16o14L?= =?us-ascii?Q?loDasE3kld/uuIYwtPJd8aNL7hsyLs2OR9vMiL2qQmg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2570; 31:BQZXtyaReS8JVhLYbhXzggFttTIn9lp3rcdWuH+PM2K1Dbb6lutp6yQLKETRh4ZVpvw3AZD+T7EFvTX1HF1/S6SIjstcaPivpaTo/BnYDNSE9SIOUIWfA2RBPC8ZY9fbq0RRSmJOWjUIOXmqdg3EKbdZl0PpxUY/hvGuVVABq+PBHiTQzOFgduiQRk04EqBb7qJkAa3b7xYN2yaTuJjoMWAnQAbyfq+xmRToC90tg/v/UyDs56GhDhTCUKaXu0BbfL/ChHoTiYzIHxhm+VozoR2gVTriHqdliuWTthktScY=; 20:Ssdak/qOy6+gL97MPHpv1vQUjwN5RTg+I3uOWD3BO0RTpuj9VOkgx2f6h99FuZTvXPVKzxXbIjWWq22P8xD4C+tMgNCc/fJwt8wVb15mlCLfW3ATTgLDXT7/0YBqyxnYeLrokF5s/n/f6Xyi7e15KfgGN269+q38dQMgjrrAsyyfwFygPZ6MnnYM1oAa1n0i+GAFKwRzbc3IbQ8uc/s2U2mEezc2gs38pveKED4RXmTgW66s+RtbeHVsyQ8YYkt/ NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415395)(6040375)(601004)(2401047)(8121501046)(13020025)(5005006)(13024025)(13023025)(13013025)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(6072148); SRVR:HE1PR0802MB2570; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0802MB2570; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2570; 4:5AfpbDo5rpF4Nbrx1Qjh6b6DIJGdfa3l4E23epQTIszPuDSVISDW7KJUhxH2G5+1CHoE6Xg5VUhf2sswZZuEeHI73NgQCKKa8FE3mRqfPKkaMXGwNLgheEiXwRYQbEeUWINjWG55VLj2X+ue79YYaIiqUlZkRze5Oanm1ijI8s397/JT6+VkEkiHXuJIlzawjEyeuKr+3yGzFibPQfbwB3oaG7E5FToKPQkUqLYLisDn3Wd2+d1zXZl4ltZVqxt5XBvkXijMebCMoD9vN2KxryMRdL4HQDlSihCEUC466GS56pBNAJhdAvPqFKOzB170i+0N9HRulkhVtNAjG6au4cHn1xh+MuGMpN0tIh6MPJAY16XeQYuiPWc2/On6ePKFBDwqSHSZytzaXpnz0W8RZ0Ql86aU45Wt0w6DivjDVrh7GJbMTydzRItuohz2ujE0ef8j0jUtQ9iIZ02E+5og+d7LRMUArVdMWfr1edRhlrURBGkPT4ApXpahyvR3gDz+2ia8DhvvdeV6A8CWDzLIQKOEpqy6zGPLtLSx6vTeBQIRCMOXkj7C82i7xG8EquOdWx7GIqQ7238snKzViRLTod6kw44ri6ajUdwdlBDKzooQplMPuchzb7mYb4PlfpPMjGug2ta28rgAuPpu7dmdqYYbzrMDul+4VELyjfHVDdE8zXuMZWQQMtwwJ7I5T+RRqj0sE3ICd3mNxq+9pKLD7zQ9eI899Kecm69Iw8NhiN0= X-Forefront-PRVS: 0162ACCC24 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0802MB2570; 23:zDNHLuccK1LYsjf5xZxK7Si1E95PBOQ4V1Dqkof?= =?us-ascii?Q?/vwIdS/Msv4XBY0apCE4Qsgc2bCIci2aj+oXsJxYWXXpocHZLa1Y8SDx454X?= =?us-ascii?Q?/53854eyBBrXfo0R78pWmCiLQXT2qFZlRwbPFjIStsajlqdav5+0cZe0lMnc?= =?us-ascii?Q?Eg50Fhl6QyrX+QylEa772ihKFYAa72O4y32cihGdGFMtldVN4HrJCMTuPwIN?= =?us-ascii?Q?4166gr3Ooox05gHjuBDxX0yU/nOcBvZ+hyDbzKmRvaxyeaQyxQkYQ0fvH6OC?= =?us-ascii?Q?bbMydL3RQD/gu1ptlNBphSbD/MSTBaonTDe6vEZNTGUr6S41rlWdp0ykQyNy?= =?us-ascii?Q?n/TBA8qwb3G0rVQVSwByua7V/5abZ3B0siFgBXBRVaYq0OOY00+Es0DjIBur?= =?us-ascii?Q?OznwpzZwMJjYgAYdJXiWzGeaIe8xXWeM2lcvmC3d6yo1xDlg+yz9Lpnx5dkW?= =?us-ascii?Q?1GAWfysvKOxdIEoHBxbtNDRlwAveNg1bC9pjmNkdXnADJ5A6Yixe1mvUs7a4?= =?us-ascii?Q?Z+GOF9zOzxKxltuqPhnigtDNdkFw9kZbJUUJfEIu7GWUSQqp75EUh3/Zh836?= =?us-ascii?Q?s/LHiO4e4LahXLFepod12BLjdLuSy2aAiSBgeTnYmvfgFsgQS8pA0NAFAn33?= =?us-ascii?Q?XmwqMQSyZ9MBKW1cqKGEju+s6sDo41pz5zF2Jy0hLXYUuIkveooSKGfEBhWG?= =?us-ascii?Q?g36cUrqzQL/YL17v+HU8fB1qTvhGNbcyx0ZqrmIy74AN6HZAF0oH8eWYb/aB?= =?us-ascii?Q?cIo3hagRkGyECedRQO8XCkr6DaI+dqU7r+zp95Y23Tvn8MqdvMZPCJ0Bieug?= =?us-ascii?Q?O2Aia7Cwd0qV6B8RUlYzRp2i8FYCyskFqV8d0AFTDl102+f0gJmQIDWB77Jm?= =?us-ascii?Q?zSu51WRWxLUwxEd9nmGGF+GJojeSzIVkFsaOmhxjTYqJR+zhXsGY/aY6I1hD?= =?us-ascii?Q?7Lpw1YmNNUihm2YGEif51KUCOQ8CBKmGABkJOE4MSqPyFl7MjGvoprB9zYoi?= =?us-ascii?Q?47fII2ranU82jvUvEsk3BoljO/XEOqgLrXhMBe0tY8rXA3DoQmk0Lz1jDX0n?= =?us-ascii?Q?UDNAz/kyTChr2YSjO27G5Sa2Cekq29pDkjNpmmQ7J0B6MB0XmkaPvSLyLNkx?= =?us-ascii?Q?VpE0m36IrxkKxiiHyxhnO1RyfIIAW9ZICUr6AurMvWmEP/7oH2X6hIh2WjC9?= =?us-ascii?Q?jitgOZEFn+v+lEqFVZqnKX2c1Pn5RFhvDgMv0lzkw4Q7h+JNeAuViKudz9vO?= =?us-ascii?Q?kZHUneQSTs8rB9JrwtGc=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2570; 6:Oqb/jClXOe5VekWcnTKv9z2TyyGci6qPzxREXjZzhiIDBCf+KT468qZJEVpFlfl8gfJKgyGaI2xfQT4DB/PQkXALRSUKC+MD6IKcV6QXRh4ceSBkAt8greU4+ie/4Y/JZ35e6umNjsdOI7YznFpJjzbX7u1jtFHT3lG1V3iqGwdL86BgUPB+rIS5MtW1BbmdfIjYMhzHjAoHYgyLg8H96/WAGHJW8s+aX9NOIcLvOlyR+mq3j1LzVrW6NzhlRJD1ZjF7yT422qIqLXkvtftcUsbz6X0fnQxNqHR66t652zr2E/NTpDwfy06TodU8H5BLuR9YQXrNmGbDEUN0FizUPYucZ5eMjpgoXGNYf/gDdotKPzFcmoh8ehIpqZrsr//0mh4GnKVOY9EGMNGbMd6Nc/NhFYHN+2xwqVp4KXB/ZtHlNCF4FphRLpYByA6vH1wNXxvKNqvjp47t0Atcx43gMA==; 5:8Jn2Nw8xnwmYOW0aLuBQS8EVGdz/k8cWLPNV69J4o1pG2MrOQTTlXxAVyGT40Ltnrf24GokseIRU9265F7Mrv6ogsZrY1bqB3H3vgd3XbE9W4kD5vxuaGZllNKXUeVsR29Xy0Ao7Bpi2WvR2SVQXDIm8t+Z9JYMk2VTevufnvNg=; 24:i3OKI+E1CQ5ZWw1YcU38MU+GT8N5+S/poGS38KViQZumj56xttsMV32qNkVp/MR6ljtI0dVNmzpXfyHMh2ULMq2A1sRfA3cJe30qYlOAHBY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0802MB2570; 7:0wfhbrzKFQIWNG935akrir42mz/305739pXnW2Y7913XqCAcA2xe1J0KLOOoDjME6LIFJUG7BKIihcO34K5d5zm7M6MqZ36f9PHYZh4XA+8uQO7GCQSOtbXMKRfrmKmZV0vEMh/U8LC18NUt00jFcSqpdbSy7bP75SJ6V5sGSh2XRRb5TFpNhVSclB0HGu8YIIJbuk5f3vTdSJuPnGBAotSoqfkg3IfkghmYXBt6j8qXOOK/uUcJRXtpft9DV6k/gQ16UqULbaQRLOBGlgV0wIM5AFBShEIPIPNsf7doccDjtzJfp/HiJ0+vVyepJgA19WxavAamjB1mVffOdB0EE4Gk6KygwWxRYiezrSsmmui1sJaULHWyGYysHwBzKpzvXPoTCvK0VQcpjnkNJ3tSLAlfIk6Pfd2q08p/cVG32XZKeF9ovgu0pAw7Pm7rEP1q358A7d2cC8R3kINZFdLZ+A== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2016 12:14:25.4023 (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: HE1PR0802MB2570 X-IsSubscribed: yes On Tue, Dec 20, 2016 at 11:48:26AM +0100, Richard Biener wrote: > On Mon, Dec 19, 2016 at 6:58 PM, James Greenhalgh > wrote: > > > >> On Thu, Dec 8, 2016 at 10:44 PM, Uros Bizjak wrote: > >> > Hello! > >> > > >> > Attached patch fixes fall-out from excess-precision improvements > >> > patch. As shown in the PR, the code throughout the compiler assumes > >> > FLAG_PRECISION_FAST when flag_unsafe_math_optimizations flag is in > >> > effect. The patch puts back two lines, removed by excess-precision > >> > improvements patch. > >> > > >> > 2016-12-08 Uros Bizjak > >> > > >> > PR middle-end/78738 > >> > * toplev.c (init_excess_precision): Initialize flag_excess_precision > >> > to EXCESS_PRECISION_FAST for flag_unsafe_math_optimizations. > >> > > >> > testsuite/ChangeLog: > >> > > >> > 2016-12-08 Uros Bizjak > >> > > >> > PR middle-end/78738 > >> > * gcc.target/i386/pr78738.c: New test. > >> > > >> > Patch was bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. > >> > > >> > OK for mainline? > >> > >> Hmm, I think it belongs to set_unsafe_math_optimization_flags instead > >> (and be consistent if -fexcess-precision was manually specified). > > > > I think it would be better if this were implied by -ffast-math/-Ofast > > than by -funsafe-math-optimizations . That's what I've implemented here, > > and tagged the option as SetByCombined to allow us to honour what the > > user requests. > > > > This should give us the behaviour you were looking for Uros. > > > > I've bootstrapped and tested the behaviour on x86_64, and I've hacked up > > the AArch64 backend to validate that we're setting the flag in the right > > circumstances (but that meant changing the AArch64 behaviour, so isn't > > something we'd want on trunk, and therefore I can't write a testcase for > > this patch). > > > > OK? > > Looks good to me, but please also adjust invoke.texi to list -fexcess-precision > as affected by -ffast-math. > > Ok with that change. Thanks, I've modified the affected portions of the documentation. As I've made a few mistakes in this area recently, I'll hold off on committing the patch until these documentation changes have been looked at by Sandra. OK? Thanks, James --- 2016-12-20 James Greenhalgh * common.opt (excess_precision): Tag as SetByCombined. * opts.c (set_fast_math_flags): Also set flag_excess_precision_cmdline. (fast_math_flags_set_p): Also check flag_excess_precision_cmdline. * doc/invoke.texi (-fexcess-precision): Drop text saying the option has no effect under -ffast-math, make it clear that -ffast-math will cause -fexcess-precision=fast by default even for standards compliant modes. (-ffast-math): Document that this sets -fexcess-precision=fast. diff --git a/gcc/common.opt b/gcc/common.opt index de06844..6ebaf9c 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1317,7 +1317,7 @@ Common Report Var(flag_expensive_optimizations) Optimization Perform a number of minor, expensive optimizations. fexcess-precision= -Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) +Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) SetByCombined -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision. Enum diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b729964..8c5308e 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -9109,21 +9109,23 @@ both casts and assignments cause values to be rounded to their semantic types (whereas @option{-ffloat-store} only affects assignments). This option is enabled by default for C if a strict conformance option such as @option{-std=c99} is used. +@option{-ffast-math} enables @option{-fexcess-precision=fast} by default +regardless of whether a strict conformance option is used. @opindex mfpmath @option{-fexcess-precision=standard} is not implemented for languages -other than C, and has no effect if -@option{-funsafe-math-optimizations} or @option{-ffast-math} is -specified. On the x86, it also has no effect if @option{-mfpmath=sse} +other than C. On the x86, it has no effect if @option{-mfpmath=sse} or @option{-mfpmath=sse+387} is specified; in the former case, IEEE semantics apply without excess precision, and in the latter, rounding is unpredictable. + @item -ffast-math @opindex ffast-math Sets the options @option{-fno-math-errno}, @option{-funsafe-math-optimizations}, @option{-ffinite-math-only}, @option{-fno-rounding-math}, -@option{-fno-signaling-nans} and @option{-fcx-limited-range}. +@option{-fno-signaling-nans}, @option{-fcx-limited-range} and +@option{-fexcess-precision=fast}. This option causes the preprocessor macro @code{__FAST_MATH__} to be defined. diff --git a/gcc/opts.c b/gcc/opts.c index 890da03..5844190 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -2342,6 +2342,10 @@ set_fast_math_flags (struct gcc_options *opts, int set) opts->x_flag_errno_math = !set; if (set) { + if (opts->frontend_set_flag_excess_precision_cmdline + == EXCESS_PRECISION_DEFAULT) + opts->x_flag_excess_precision_cmdline + = set ? EXCESS_PRECISION_FAST : EXCESS_PRECISION_DEFAULT; if (!opts->frontend_set_flag_signaling_nans) opts->x_flag_signaling_nans = 0; if (!opts->frontend_set_flag_rounding_math) @@ -2374,7 +2378,9 @@ fast_math_flags_set_p (const struct gcc_options *opts) && opts->x_flag_unsafe_math_optimizations && opts->x_flag_finite_math_only && !opts->x_flag_signed_zeros - && !opts->x_flag_errno_math); + && !opts->x_flag_errno_math + && opts->x_flag_excess_precision_cmdline + == EXCESS_PRECISION_FAST); } /* Return true iff flags are set as if -ffast-math but using the flags stored