Add support for kernel.org LLVM
I maintain builds of LLVM on kernel.org: https://mirrors.edge.kernel.org/pub/tools/llvm/
I would like to integrate these into TuxSuite (which means I would need to integrate them here first, hence this issue) to allow our continuous integration to use them, as I build them with PGO (and BOLT when possible), making them markedly faster than Debian's:
Benchmark 1: Building ARCH=arm64 allmodconfig @ ffd2cb6b718e ("Merge tag 'block-6.8-2024-02-22' of git://git.kernel.dk/linux") with Debian clang version 17.0.6 (++20231208085813+6009708b4367-1~exp1~20231208085906.81)
Time (mean ± σ): 598.076 s ± 1.246 s [User: 40598.261 s, System: 3810.492 s]
Range (min … max): 597.194 s … 598.957 s 2 runs
Benchmark 2: Building ARCH=arm64 allmodconfig @ ffd2cb6b718e ("Merge tag 'block-6.8-2024-02-22' of git://git.kernel.dk/linux") with ClangBuiltLinux clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
Time (mean ± σ): 371.164 s ± 0.725 s [User: 23312.427 s, System: 3053.658 s]
Range (min … max): 370.651 s … 371.677 s 2 runs
Summary
Building ARCH=arm64 allmodconfig @ ffd2cb6b718e ("Merge tag 'block-6.8-2024-02-22' of git://git.kernel.dk/linux") with ClangBuiltLinux clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) ran
1.61 ± 0.00 times faster than Building ARCH=arm64 allmodconfig @ ffd2cb6b718e ("Merge tag 'block-6.8-2024-02-22' of git://git.kernel.dk/linux") with Debian clang version 17.0.6 (++20231208085813+6009708b4367-1~exp1~20231208085906.81)
which would ultimately save us a lot of time in the matrix.
I do not mind tackling this task myself. However, I may need a little guidance into what exactly I should modify. I have a rough idea that I plan on prototyping soon but it may save me time if there was any guidance beforehand (including "we don't want this altogether" :)
I have not tested if these toolchains work for compiling any of the other targets such as the selftests, so they may be broken for those targets.