4 ms·
I looked and didn't see any answer to... is there a difference in performance of the gcc vs llvm compiled kernel?
by e40 5y ago
I looked and didn't see any answer to... is there a difference in performance of the gcc vs llvm compiled kernel?
- mjevans 5y agoThey're different compilers so I assume the answer would be yes. If it isn't possible to build currently I expect minimal clarifying changes wouldn't have much impact on runtime performance (where it compiled previously), but as mentioned in another post would lower the risk of bugs and maintenance burden with clearer code. Portability, validation, across multiple platforms is one way of exposing bugs and weaknesses in logical description.
- astrange 5y ago> They're different compilers so I assume the answer would be yes. They have highly similar designs (at least in the middle-end which is the important part), or did, but gcc's remaining large customers care most about optimizations so it's still somewhat ahead there.
- stncls 5y agoThose are not necessarily comprehensive benchmarks, but it seems clang is doing very well in many workloads: https://www.phoronix.com/scan.php?page=article&item=clang-lto-kernel https://www.phoronix.com/scan.php?page=article&item=clang-lt...
- voldacar 5y agoGCC with max optimization still generally produces faster binaries than clang, but clang is constantly improving and in a few years they will probably be very similar.
- tambourine_man 5y agoIs that still true though? It was definitely the case some 5-10 years ago, but last time I checked they were pretty comparable, losing some, winning others.
- voldacar 5y agoclang wins on some benchmarks, but gcc wins on over 50% of benchmarks, at least this always seems to be the case whenever I look it up. If I were writing a program that needed to be really fast I would just compile with both on max optimizations and pick whichever was best. Most software isn't the linux kernel and will work fine with both compilers
- pyler 5y agosource? llvm 13?
- qalmakka 5y agoThese benchmarks also don't reflect how good are the backends for different CPU architectures in GCC and LLVM. For instance, GCC is by far the dominant compiler on GNU/Linux on x86, while LLVM has a almost total monopoly of AArch64 (think about Android NDK + iOS + macOS). I think it would be quite natural for the GCC AArch64 backend to get less focus compared to its x86 counterpart. It's a complicated landscape that is always full of gotchas, and that's why I don't like these kinds of benchmarks a lot.
- mhh__ 5y agoIt's still true. Basically it's even as makes no difference except for ones where GCC is still way ahead. Real world code has to be measured for each to decide. The key takeaway is that GCC is still an extremely good compiler.
- hulitu 5y agoThat's why they said since 5 years. My experience was that clang seems longer compiling but due to the fact i did not compiled the same program with clang and gcc i would not take it as a rule.
- voldacar 5y agoI was referring to performance of the compiled program, not the time it takes to compile it.