Do any of you have an idea as to what the Compilation Time vs Execution Time looks like in LLVM JIT with most aggressive optimizations on. Is adaptive compilation going to bring any benefits to the LLVM JIT ?
Last I checked, JIT compilation was very expensive, and the majority
of that time went into codegen, ie instruction selection, register
allocation, and other kinds of lowering. For our uses, the overhead
of the target-independent optimizations was negligible compared to the
codegen time. However, using fast isel and fast regalloc slowed the
generated code down too much for it to be worth generating code in the
first place. Your mileage may vary, though, and I would encourage you
to do a fresh analysis.