aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2018-02-01 11:21:58 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2018-02-08 22:37:10 +1100
commitdf5d45aa08f848b79caf395211b222790534ccc7 (patch)
tree14354434e1d0b1a2c4c046f4a22c6274fb44f935
parentcrypto: sha3-generic - deal with oversize stack frames (diff)
downloadlinux-dev-df5d45aa08f848b79caf395211b222790534ccc7.tar.xz
linux-dev-df5d45aa08f848b79caf395211b222790534ccc7.zip
compiler-gcc.h: Introduce __optimize function attribute
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> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--include/linux/compiler-gcc.h4
-rw-r--r--include/linux/compiler.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index 2272ded07496..7bba8e28c529 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 188ed9f65517..cdc629f20e20 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