While LLVM is undoubtedly a great project for compiler research, lets not forget those that predated it with similar ideas like the Amsterdam Compiler Toolkit, or IBM's PL.8 compiler for the RISC project.
This infrastructure is also slow and leads to poor compilation times for any language that uses llvm as a backend. In an era of automatic code generation, this will become more and more of a problem as llvm compilation times will become a huge bottleneck. I am very bearish on llvm as a technology and while I will acknowledge its influence, I expect that it is at or near its peak and market share will decline dramatically over the next five to ten years.
Where are the fast alternatives though that do the same level of optimizations?
LLVM might not be the fastest, but when you get to the point that build times become a problem, your code base is too big (or your frontend is doing silly things). Maybe ask your 'automatic code generation' to generate less code bloat ;)
The only alternative I'm aware of with a similar level of optimization is GCC's backend, which is just as slow.
Both should be much faster at compiling debug builds than they are though. There's an LLVM fork (TPDE-LLVM) that supports a limited set of backend targets but compiles way faster (order of magnitude) for O0, but for whatever reason they haven't managed to merge it with the mainline LLVM. Even with that there's still plenty of overhead from all the horrible C++ OOP-brained abstractions LLVM uses.
It makes perfect sense to ditch LLVM in development contexts, as its slowness is antithetical to developer productivity — most obviously in tight edit-compile-test loops. And this becomes orders of magnitude more salient when the edit-compile-test loop is being driven by AI.
But even when languages are described as "moving away" that usually means building their own very fast-compiling/min-optimising x64/ARM backend for development builds, while still acknowledging the need for LLVM for highly optimised release builds.
it means that was an AI-generated comment to an article which was also AI-generated. The other comment replying to this comment is also AI-written. The internet is not dead, its just fake
I’ve been shocked by how much LLVM leaves on the table while designing Logos language! Some very exciting benchmarks coming soon that we’ve been working on for over 6 months, but LLVM misses a LOT of potential optimizations when you have a strong type system!
Yes that's the language, the v0.10.0 benchmarks are coming very soon and with it some major updates. We've added supercompilation and symmetry breaking to the optimizer pipeline. Sneak peeks available on a branch currently named stream1. https://github.com/Brahmastra-Labs/logicaffeine/tree/stream1
LLVM here refers to the LLVM Compiler Infrastructure, an open source software system created to simplify the design and implementation of compilers and a wide range of compiler-based tools.
While LLVM is undoubtedly a great project for compiler research, lets not forget those that predated it with similar ideas like the Amsterdam Compiler Toolkit, or IBM's PL.8 compiler for the RISC project.
It's also fairly accessible to LLMs. I was surprised at how quickly a self-hosting compiler could be brought up using the LLVM ecosystem.
That's what I've been doing with a custom jank implementation, taking advantage of the LLVM changes contributed upstream to LLVM 22.
This infrastructure is also slow and leads to poor compilation times for any language that uses llvm as a backend. In an era of automatic code generation, this will become more and more of a problem as llvm compilation times will become a huge bottleneck. I am very bearish on llvm as a technology and while I will acknowledge its influence, I expect that it is at or near its peak and market share will decline dramatically over the next five to ten years.
5 years? There would need to be already production ready, growing alternative
Where are the fast alternatives though that do the same level of optimizations?
LLVM might not be the fastest, but when you get to the point that build times become a problem, your code base is too big (or your frontend is doing silly things). Maybe ask your 'automatic code generation' to generate less code bloat ;)
The only alternative I'm aware of with a similar level of optimization is GCC's backend, which is just as slow.
Both should be much faster at compiling debug builds than they are though. There's an LLVM fork (TPDE-LLVM) that supports a limited set of backend targets but compiles way faster (order of magnitude) for O0, but for whatever reason they haven't managed to merge it with the mainline LLVM. Even with that there's still plenty of overhead from all the horrible C++ OOP-brained abstractions LLVM uses.
It makes perfect sense to ditch LLVM in development contexts, as its slowness is antithetical to developer productivity — most obviously in tight edit-compile-test loops. And this becomes orders of magnitude more salient when the edit-compile-test loop is being driven by AI.
But even when languages are described as "moving away" that usually means building their own very fast-compiling/min-optimising x64/ARM backend for development builds, while still acknowledging the need for LLVM for highly optimised release builds.
For developer productivity, you can move to a REPL workflow with edit-compile-test at the function level. Julia does this while staying on LLVM.
Of course, compile-the-world is still going to be slow, but there is no solution for that in the C++/Rust ecosystems either.
> leads to poor compilation times for any language that uses llvm as a backend
it doesn't take long for user delay to sum to more than developer delay
> In an era of automatic code generation
lol what does this even mean
it means that was an AI-generated comment to an article which was also AI-generated. The other comment replying to this comment is also AI-written. The internet is not dead, its just fake
I’ve been shocked by how much LLVM leaves on the table while designing Logos language! Some very exciting benchmarks coming soon that we’ve been working on for over 6 months, but LLVM misses a LOT of potential optimizations when you have a strong type system!
Is there a URL for that language? It is unfortunately a bit un-googleable!
found this: https://logicaffeine.com/guide
Yes that's the language, the v0.10.0 benchmarks are coming very soon and with it some major updates. We've added supercompilation and symmetry breaking to the optimizer pipeline. Sneak peeks available on a branch currently named stream1. https://github.com/Brahmastra-Labs/logicaffeine/tree/stream1
LLVM here refers to the LLVM Compiler Infrastructure, an open source software system created to simplify the design and implementation of compilers and a wide range of compiler-based tools.
As opposed to what?
LLM. I guess the commenter didn't want people to confuse LLM with LLVM because of naming similarly.
Not to mention vLLM :-D