Graal is pretty brand new in the relative scheme of things, it's not going to be amazing out of the box. (I'll ignore the "LLVM has a JIT" part)<p>Really.
There is no magic here.
The way you get compilers with 100% or greater perf of gcc/llvm is not through silver bullets.
It's through a large amount of hard work and tuning. IE hundreds of person years.<p>It's usually easy to get the first 60-70%, and then people say "see, we didn't need <heavyweight thing>, we'll beat them with <lightweight thing>". But if you have customers where no performance is ever "good enough", getting that 30%, and eventually beating other compilers, is the thing that takes 10+ years. You'll never do it with <lightweight thing>.
That's why all these folks who try eventually end up with 3 layers of compilers, etc.<p>If it could have been done with <lightweight thing>, it would have been done that way.<p>Also, you can just about always transfer the metadata necessary to do high level optimization x at a lower level. it just may not be efficient to do so.<p>Conversely, compilers that focus on fairly high level optimizations often do a bad job at lower level ones :)<p>Again, tradeoffs, tradeoffs.
(This is why, for example, swift/rust/etc have some higher level IR, do what they can, and hand the rest off to llvm).