(no title)
cfv | 5 years ago
Just curious, do you have any examples of this "limitations" you speak of? Sounds like a very interesting read.
cfv | 5 years ago
Just curious, do you have any examples of this "limitations" you speak of? Sounds like a very interesting read.
Someone|5 years ago
In broad strokes, LLVM chooses to optimize for generating good code for statically compiled code more than for, for example, memory usage, compilation speed, or ability to dynamically change compiled code. That doesn’t make it optimal for JavaScript, a language that’s highly dynamic and often is used in cases where compilation time can easily dwarf execution time.
pizlonator|5 years ago
It’s not even about what language you’re compiling. It’s about the IR that goes into llvm or whatever you would use instead of llvm. If that IR generally does C-like things and can only describe types and aliasing to the level of fidelity that C can (I.e. structured assembly with crude hacks that let you sometimes pretend that you have a super janky abstract machine), then llvm is great. Otherwise it’s a missed opportunity.
fnord123|5 years ago
Also if you want to use llvm as a backend for your project and expect to build llvm as part of a vendored package, the llvm libraries with debug symbols on my machine was about 3GB. Also not ideal.
pizlonator|5 years ago
temac|5 years ago
aw1621107|5 years ago
Do you mind expanding more on these points or directing me to some places where I can learn more about them? Compilers are a fairly new field for me, so anything I can learn about their design decisions and tradeoffs are worth their weight in gold.
stjohnswarts|5 years ago