From owner-freebsd-hackers@freebsd.org Mon Jun 5 17:02:38 2017 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D0A3AFD402 for ; Mon, 5 Jun 2017 17:02:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm6.bullet.mail.ne1.yahoo.com (nm6.bullet.mail.ne1.yahoo.com [98.138.90.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D1294261B for ; Mon, 5 Jun 2017 17:02:37 +0000 (UTC) (envelope-from pfg@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1496682026; bh=n9g4si0ZIPwrb0Obq8IUihG3DtQg9mz6ILmxX+9kX1I=; h=Subject:From:To:Cc:References:Date:In-Reply-To:From:Subject; b=WW1GpU4iJcJFuvPYO94wbotRGSzireTzFGS0mkf4X7v65n6Dx66YKVS2Fd4U/GTqP9S5nY4IneI3jw37t+cASZYfFn/LeqfAAcXkaIrKPi5WuEVOa2y3VMA1TKQ0ZaIUhkpxgag2rc3/0QbuEX8fGaXAM1/P4KOrmlqV6LEF64B7e6pFVjzf3hWgA8TsKxvCkC+3jBiKA6Pa7xE0EBayHgwl47oPdBNFPhUlTmxm187MZ+uihe/WCS+aCEkXIi+1Bm3xO1xm0hvjq5CC/nF81x/5s7x4n4pcLHAARc+lrbm956vH7YQZWKpy+Jo6xcTd/LednjRGNVgmlQUQo/jStw== Received: from [98.138.100.114] by nm6.bullet.mail.ne1.yahoo.com with NNFMP; 05 Jun 2017 17:00:26 -0000 Received: from [98.138.104.116] by tm105.bullet.mail.ne1.yahoo.com with NNFMP; 05 Jun 2017 17:00:26 -0000 Received: from [127.0.0.1] by smtp225.mail.ne1.yahoo.com with NNFMP; 05 Jun 2017 17:00:26 -0000 X-Yahoo-Newman-Id: 809536.49104.bm@smtp225.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: FQU6C_sVM1kK2_mlEqwmu8Q285YOhvdVnRlZVvB4R424ApY kLop95vis2z64_LgiK5v8gO4hcRT_wIMhCw6njJ1rwOc2pNBKgZbE2YMjMlF qkhjke98layn1b87IeFiSP3Nd346wyHtkMCiDxWPfvA0zu29dTJ3JEnXQK4w UBB3OVhzDwHXtXgl8gtsthwHWABC9LwRjmWJbVt5nbW3JEd9OcDg_TPfgZx2 ffG.59Nr66cOVYnuFzGbhmiirN0qA1FyC3zcsUbRKennK_NEA1vKe9w8XiWV nAjLMiIJZ7jFInVu3bpWaWTEloVIrMlRs7m9RPYMuuVR55D78QlEqlAhgqKq BLIzdCqK2ipd_7i86HGLf3FXe4NusSz2rnEbxQGh2sGbJKZoTAY5wQpqeEst GWJSMeelL.PuWGE.UTJqiX3L80XjEEvv7oCkLrfQ_F9DctXvbsUt5jR5pZij 1ByKyv6GOHNaaYXq0YeHpE.YwmI2Gxt_Lyxqp2prQ1U_5UrLwV1691QDR8ku tz9iXOZ4COYlBRyC9UsY9GxIljzbLwQ3xLiAZqnKfn4Kh X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf Subject: Re: Function attribute for optimization level From: Pedro Giffuni To: Eric van Gyzen Cc: FreeBSD Hackers References: Organization: FreeBSD Project Message-ID: <0e9c89aa-920f-26bb-abde-2f4901740933@FreeBSD.org> Date: Mon, 5 Jun 2017 12:00:26 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2017 17:02:38 -0000 On 04/06/2017 23:08, Pedro Giffuni wrote: > > Hi Eric; > > It is a good idea : the nonopt attribute is useful in parts of the > boot loader and probably in security-related functions. > > >> diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h >> index 9cdc03c861cb..e370f6d6459e 100644 >> --- a/sys/sys/cdefs.h >> +++ b/sys/sys/cdefs.h >> @@ -396,6 +396,14 @@ >> #define __unreachable() ((void)0) >> #endif >> >> +#if __has_attribute(optnone) >> +#define __no_optimization __attribute__((optnone)) >> +#elif __has_attribute(optimize) >> +#define __no_optimization __attribute__((optimize(0))) >> +#else >> +#define __no_optimization >> +#endif > > I think the second one is wrong though: 'optimize' doesn't appear to > be a valid clang attribute. GCC uses an optimize("O0") pragma, but it > is not an attribute and __has_attribute doesn't work for GCC anyways. > Bah, I found it in the GCC 4.4 Release Notes. Fopr GCC you have to check __GNUC_PREREQ__(4, 4) instead __has_attribute(). Cheers, Pedro.