On 2021-06-18, Nick Desaulniers wrote:
When we say noinstr, we mean noinstr. GCOV and PGO can both instrument functions. Add a new function annotation __no_profile that expands to __attribute__((__no_profile__)) and Kconfig value CC_HAS_NO_PROFILE_FN_ATTR. Base is https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/log/?h=for-next/clang/pgo. Nick Desaulniers (2): compiler_attributes.h: define __no_profile, add to noinstr Kconfig: CC_HAS_NO_PROFILE_FN_ATTR, depend on for GCOV and PGO include/linux/compiler_attributes.h | 12 ++++++++++++ include/linux/compiler_types.h | 2 +- init/Kconfig | 3 +++ kernel/gcov/Kconfig | 1 + kernel/pgo/Kconfig | 3 ++- 5 files changed, 19 insertions(+), 2 deletions(-) base-commit: 4356bc4c0425c81e204f561acf4dd0095544a6cb -- 2.32.0.288.g62a8d224e6-goog
Thanks for the attribute work in clang and kernel! Hope we can use clang PGO in 5.14... (I am a casual contributor to clang PGO/coverage)