If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Link-Time Optimization To Speed Up The Linux Kernel

Phoronix: Link-Time Optimization To Speed Up The Linux Kernel

An extensive set of patches have been published that allow the Linux kernel to be built with GCC's LTO (Link-Time Optimization) support for generating a faster Linux kernel binary but at the cost of much greater compile times...

Well, that's interesting. Once this gets implemented, it will be awesome news for slow devices on Gentoo using distcc. Also, you could compile a kernel normally, see if it works out right, and then in spare time compile it with the optimizations. I just wonder how much difference they'll make.

Afaik LLVM is mostly driven by Apple and Apple has no interest in making LLVM build the Linux kernel.

it doesn't require Apple's blessing, nor them to do the work in order for LLVM to build the kernel. They also don't happen to be the only company/party using LLVM, nor the only company/party contributing to CLang/LLVM. What it actually requires is people hacking on code (both Linux kernel and Clang/LLVM code), fixing issues and then submitting their patches upstream to both projects,

For portability between compilers, yes. However this is the result of the kernel using compiler extensions which allow a much higher degree of control regarding the generated code, resulting in much better efficiency than letting the compiler do it's guess-work.

Also since many of these GCC compiler extensions were added at the direct request of the kernel developers there's little chance they would decide to suddenly go without them. Also the Linux kernel devs are very performance oriented and I doubt they would forego any efficiency in order to ease porting to other compiler toolchains.

While perfect portability between compilers would be nice, it's really not much of a practical problem since GCC is ported to everything. Also giving up efficiency of generated code in order to have it compiling with compiler X is likely not something end-users would find attractive either.

And then there's nothing preventing other compilers from supporting said extensions, and for the record all compilers supports a variety of compiler extensions, some are cross-supported and some are exclusive.