Message ID | 1517480520-4465-1-git-send-email-geert@linux-m68k.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 1 February 2018 at 10:21, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > Create a new function attribute __optimize, which allows to specify an > optimization level on a per-function basis. > > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > 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 > -- > 2.7.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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
Create a new function attribute __optimize, which allows to specify an optimization level on a per-function basis. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> --- 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(+)