I've seen it stated several times that AOT can run some more expensive optimizations that take too long to be used by a JIT. But I've never seen it stated what exactly these optimizations are. So I'm wondering, what are these optimizations?
Register allocation comes to mind.
According to wikipedia:
Also, I recently came across a stackoverflow question about an optimization that the JIT compiler doesn't do. Not sure if compile times are the reason, but it might still be worth checking.