linux/arch
Masahiro Yamada 9012d01166 compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING
Commit 60a3cdd063 ("x86: add optimized inlining") introduced
CONFIG_OPTIMIZE_INLINING, but it has been available only for x86.

The idea is obviously arch-agnostic.  This commit moves the config entry
from arch/x86/Kconfig.debug to lib/Kconfig.debug so that all
architectures can benefit from it.

This can make a huge difference in kernel image size especially when
CONFIG_OPTIMIZE_FOR_SIZE is enabled.

For example, I got 3.5% smaller arm64 kernel for v5.1-rc1.

  dec       file
  18983424  arch/arm64/boot/Image.before
  18321920  arch/arm64/boot/Image.after

This also slightly improves the "Kernel hacking" Kconfig menu as
e61aca5158 ("Merge branch 'kconfig-diet' from Dave Hansen') suggested;
this config option would be a good fit in the "compiler option" menu.

Link: http://lkml.kernel.org/r/20190423034959.13525-12-yamada.masahiro@socionext.com
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Borislav Petkov <bp@suse.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Boris Brezillon <bbrezillon@kernel.org>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Malaterre <malat@debian.org>
Cc: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Richard Weinberger <richard@nod.at>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 19:52:48 -07:00
..
alpha init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
arc init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
arm ARM: mark setup_machine_tags() stub as __init __noreturn 2019-05-14 19:52:48 -07:00
arm64 arm64: mark (__)cpus_have_const_cap as __always_inline 2019-05-14 19:52:48 -07:00
c6x init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
csky DMA mapping updates for 5.2 2019-05-09 08:40:55 -07:00
h8300 init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
hexagon mm: memblock: make keeping memblock memory opt-in rather than opt-out 2019-05-14 09:47:50 -07:00
ia64 mm: memblock: make keeping memblock memory opt-in rather than opt-out 2019-05-14 09:47:50 -07:00
m68k mm: memblock: make keeping memblock memory opt-in rather than opt-out 2019-05-14 09:47:50 -07:00
microblaze init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
mips MIPS: mark __fls() and __ffs() as __always_inline 2019-05-14 19:52:48 -07:00
nds32 init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
nios2 mm: memblock: make keeping memblock memory opt-in rather than opt-out 2019-05-14 09:47:50 -07:00
openrisc init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
parisc initramfs: provide a generic free_initrd_mem implementation 2019-05-14 09:47:47 -07:00
powerpc powerpc/mm/radix: mark as __tlbie_pid() and friends as__always_inline 2019-05-14 19:52:48 -07:00
riscv riscv: switch over to generic free_initmem() 2019-05-14 09:47:47 -07:00
s390 s390/cpacf: mark scpacf_query() as __always_inline 2019-05-14 19:52:48 -07:00
sh mm: memblock: make keeping memblock memory opt-in rather than opt-out 2019-05-14 09:47:50 -07:00
sparc mm: use mm_zero_struct_page from SPARC on all 64b architectures 2019-05-14 09:47:49 -07:00
um initramfs: provide a generic free_initrd_mem implementation 2019-05-14 09:47:47 -07:00
unicore32 - Fix-ups 2019-05-14 10:45:03 -07:00
x86 compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING 2019-05-14 19:52:48 -07:00
xtensa init: provide a generic free_initmem implementation 2019-05-14 09:47:47 -07:00
.gitignore
Kconfig initramfs: move the legacy keepinitrd parameter to core code 2019-05-14 09:47:47 -07:00