AutoFDO: Enable machine function split optimization for AutoFDO
authorRong Xu <xur@google.com>
Sat, 2 Nov 2024 17:51:13 +0000 (10:51 -0700)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 27 Nov 2024 00:38:27 +0000 (09:38 +0900)
commit2fd65f7afd5a73b685a1651cb651ade120b53e15
treee086e6e6453d4353c330caecfc3e39f503c801df
parent0847420f5e499a7ab518942fff71482179290163
AutoFDO: Enable machine function split optimization for AutoFDO

Enable the machine function split optimization for AutoFDO in Clang.

Machine function split (MFS) is a pass in the Clang compiler that
splits a function into hot and cold parts. The linker groups all
cold blocks across functions together. This decreases hot code
fragmentation and improves iCache and iTLB utilization.

MFS requires a profile so this is enabled only for the AutoFDO builds.

Co-developed-by: Han Shen <shenhan@google.com>
Signed-off-by: Han Shen <shenhan@google.com>
Signed-off-by: Rong Xu <xur@google.com>
Suggested-by: Sriraman Tallam <tmsriram@google.com>
Suggested-by: Krzysztof Pszeniczny <kpszeniczny@google.com>
Tested-by: Yonghong Song <yonghong.song@linux.dev>
Tested-by: Yabin Cui <yabinc@google.com>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Kees Cook <kees@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
include/asm-generic/vmlinux.lds.h
scripts/Makefile.autofdo