Re: [PATCH v3] pgo: add clang's Profile Guided Optimization infrastructure
From: Nathan Chancellor <hidden>
Date: 2021-01-12 17:23:41
Also in:
linux-doc, linux-kbuild, lkml
On Tue, Jan 12, 2021 at 05:10:04PM +0800, kernel test robot wrote:
Hi Bill, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.11-rc3] [cannot apply to powerpc/next s390/features tip/x86/core next-20210111] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Bill-Wendling/pgo-add-clang-s-Profile-Guided-Optimization-infrastructure/20210112-133315 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git a0d54b4f5b219fb31f0776e9f53aa137e78ae431 config: x86_64-allyesconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
Hmmm... This should probably be gated on CC_IS_CLANG? Or even better CLANG_VERSION >= 120000 due to https://github.com/ClangBuiltLinux/linux/issues/1252?
reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/6ab85bae7667afd0aa68c6442b7ca5c369fa1088 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Bill-Wendling/pgo-add-clang-s-Profile-Guided-Optimization-infrastructure/20210112-133315 git checkout 6ab85bae7667afd0aa68c6442b7ca5c369fa1088 # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <redacted> All warnings (new ones prefixed by >>): kernel/pgo/instrument.c:72:6: warning: no previous prototype for '__llvm_profile_instrument_target' [-Wmissing-prototypes] 72 | void __llvm_profile_instrument_target(u64 target_value, void *data, u32 index) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/pgo/instrument.c:135:6: warning: no previous prototype for '__llvm_profile_instrument_range' [-Wmissing-prototypes] 135 | void __llvm_profile_instrument_range(u64 target_value, void *data, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~quoted
quoted
kernel/pgo/instrument.c:179:6: warning: no previous prototype for '__llvm_profile_instrument_memop' [-Wmissing-prototypes]179 | void __llvm_profile_instrument_memop(u64 target_value, void *data, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I still think that this warning will show up with clang at W=1. Given
that these are compiler inserted functions, the prototypes don't matter
but we could shut it up by just putting the prototypes right above the
functions like was done in commit 1e1b6d63d634 ("lib/string.c: implement
stpcpy").
Cheers,
Nathan