GCC 10 appears to have changed -O2 in order to make compilation time
faster when using -flto, seemingly at the expense of performance, in
particular with regards to how the inliner works. Since -O3 these days
shouldn't have the same set of bugs as 10 years ago, this commit
defaults new kernel compiles to -O3 when using gcc >= 10.

Cc: linux-kbu...@vger.kernel.org
Cc: x...@kernel.org
Cc: sta...@vger.kernel.org
Cc: hjl.to...@gmail.com
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Jakub Jelinek <ja...@redhat.com>
Cc: Oleksandr Natalenko <oleksa...@redhat.com>
Cc: Arnd Bergmann <a...@arndb.de>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: David Laight <david.lai...@aculab.com>
Cc: Linus Torvalds <torva...@linux-foundation.org>
Cc: Masahiro Yamada <yamada.masah...@socionext.com>
Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com>
---
Changes v1->v2:
 - [Oleksandr] Remove O3 dependency on ARC.

 init/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/init/Kconfig b/init/Kconfig
index 9e22ee8fbd75..f76ec3ccc883 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1245,7 +1245,8 @@ config BOOT_CONFIG
 
 choice
        prompt "Compiler optimization level"
-       default CC_OPTIMIZE_FOR_PERFORMANCE
+       default CC_OPTIMIZE_FOR_PERFORMANCE_O3 if GCC_VERSION >= 100000
+       default CC_OPTIMIZE_FOR_PERFORMANCE if (GCC_VERSION < 100000 || 
CC_IS_CLANG)
 
 config CC_OPTIMIZE_FOR_PERFORMANCE
        bool "Optimize for performance (-O2)"
@@ -1256,7 +1257,6 @@ config CC_OPTIMIZE_FOR_PERFORMANCE
 
 config CC_OPTIMIZE_FOR_PERFORMANCE_O3
        bool "Optimize more for performance (-O3)"
-       depends on ARC
        imply CC_DISABLE_WARN_MAYBE_UNINITIALIZED  # avoid false positives
        help
          Choosing this option will pass "-O3" to your compiler to optimize
-- 
2.26.2

Reply via email to