Differences when building with GCC or with LLVM?

Is there a discussion around building with CONFIG_USE_LLVM_BUILD=y which the buildbot config option sets vs not (ie gcc)? Any performance benefits to compiled images?

Some background reading for those who are interested:
https://alibabatech.medium.com/gcc-vs-clang-llvm-an-in-depth-comparison-of-c-c-compilers-899ede2be378

Thanks for the reference. I am interested in a head-to-head with Openwrt if such an experiment exists. Also interested to see if different subarchs are different than x86_64.

Afair it does not mean building OpenWrt with LLVM but building a local LLVM toolchain (instead of downloading a prebuilt one or using a host installed one) for compiling eBPF programs

I believe you are correct... but I am still confused by the buildbot option which sets:

CONFIG_ALL_KMODS=y
CONFIG_ALL_NONSHARED=y
CONFIG_BUILDBOT=y
CONFIG_COLLECT_KERNEL_DEBUG=y
CONFIG_HAS_BPF_TOOLCHAIN=y
CONFIG_IB=y
CONFIG_KERNEL_BUILD_DOMAIN="buildhost"
CONFIG_KERNEL_BUILD_USER="builder"
CONFIG_PACKAGE_libbpf=m
CONFIG_PACKAGE_libelf=m
CONFIG_PACKAGE_libpcap=m
CONFIG_PACKAGE_libxdp=m
CONFIG_PACKAGE_qosify=m
CONFIG_PACKAGE_tc-tiny=m
CONFIG_PACKAGE_xdp-filter=m
CONFIG_PACKAGE_xdp-loader=m
CONFIG_PACKAGE_xdpdump=m
CONFIG_PACKAGE_zlib=m
CONFIG_REPRODUCIBLE_DEBUG_INFO=y
CONFIG_USE_LLVM_BUILD=y

Even though it's an external toolchain, it is clang not gcc.

AFAIK, this was added to support the qosify package, which can also use a prebuilt / installed:

# CONFIG_BPF_TOOLCHAIN_BUILD_LLVM is not set
CONFIG_BPF_TOOLCHAIN_HOST_PATH="/usr/lib/llvm-16"
# CONFIG_HAS_PREBUILT_LLVM_TOOLCHAIN is not set
CONFIG_USE_LLVM_HOST=y

I am wondering why it is the default for the buildbot config. If I understand it, this is how all official packages are built. Is that correct? External toolchain?

Yes, I think that is correct.