From patchwork Thu Feb 1 10:21:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Geert Uytterhoeven X-Patchwork-Id: 10195237 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 153B6601A0 for ; Thu, 1 Feb 2018 10:22:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 12714289FD for ; Thu, 1 Feb 2018 10:22:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0707B28A43; Thu, 1 Feb 2018 10:22:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9439E289FD for ; Thu, 1 Feb 2018 10:22:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752023AbeBAKW0 (ORCPT ); Thu, 1 Feb 2018 05:22:26 -0500 Received: from andre.telenet-ops.be ([195.130.132.53]:46120 "EHLO andre.telenet-ops.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751796AbeBAKWI (ORCPT ); Thu, 1 Feb 2018 05:22:08 -0500 Received: from ayla.of.borg ([84.194.104.20]) by andre.telenet-ops.be with bizsmtp id 5NN31x00Y0SRDqC01NN3Bg; Thu, 01 Feb 2018 11:22:06 +0100 Received: from ramsan.of.borg ([192.168.97.29] helo=ramsan) by ayla.of.borg with esmtp (Exim 4.86_2) (envelope-from ) id 1ehC0J-0007hC-0f; Thu, 01 Feb 2018 11:22:03 +0100 Received: from geert by ramsan with local (Exim 4.86_2) (envelope-from ) id 1ehC0I-0001Aj-Qi; Thu, 01 Feb 2018 11:22:02 +0100 From: Geert Uytterhoeven To: Herbert Xu , "David S . Miller" , Christopher Li , Ard Biesheuvel , Tom Lendacky Cc: Arnd Bergmann , Andrew Morton , linux-crypto@vger.kernel.org, linux-sparse@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH 1/3] compiler-gcc.h: Introduce __optimize function attribute Date: Thu, 1 Feb 2018 11:21:58 +0100 Message-Id: <1517480520-4465-1-git-send-email-geert@linux-m68k.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Create a new function attribute __optimize, which allows to specify an optimization level on a per-function basis. Signed-off-by: Geert Uytterhoeven Acked-by: Ard Biesheuvel --- I assume this is supported as of gcc-4.4: - gcc version 4.3.3 (GCC): warning: ‘__optimize__’ attribute directive ignored - gcc version 4.4.7 (Ubuntu/Linaro 4.4.7-1ubuntu2): OK --- include/linux/compiler-gcc.h | 4 ++++ include/linux/compiler.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 631354acfa720475..0a278a527944ad2f 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -196,6 +196,10 @@ #endif /* __CHECKER__ */ #endif /* GCC_VERSION >= 40300 */ +#if GCC_VERSION >= 40400 +#define __optimize(level) __attribute__((__optimize__(level))) +#endif /* GCC_VERSION >= 40400 */ + #if GCC_VERSION >= 40500 #ifndef __CHECKER__ diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 52e611ab9a6cf6fd..5ff818e9a836e898 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -271,6 +271,10 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s #endif /* __ASSEMBLY__ */ +#ifndef __optimize +# define __optimize(level) +#endif + /* Compile time object size, -1 for unknown */ #ifndef __compiletime_object_size # define __compiletime_object_size(obj) -1