4 ms·
But you can't turn off codegen in a JIT compiler either, unless you're interpreting code, so that requirement doesn't fundamentally make GCC and LLVM impractica
by foobarbazqux 13y ago
But you can't turn off codegen in a JIT compiler either, unless you're interpreting code, so that requirement doesn't fundamentally make GCC and LLVM impractical. It sounds like LLVM either doesn't have very many optimizations or their backend needs work.
- rayiner 13y agoLLVM's instruction selection/legalization infrastructure is very sophisticated, very generic, table-driven, etc. Most JIT compilers use more ad-hoc and quicker mechanisms to get machine code out of IR.
- foobarbazqux 13y agoYeah okay. Someone else pointed out FastISel.cpp. It's probably true that prettiness competes with performance.
- rayiner 13y agoFastISel will quite often kick out to the regular instruction selector because it can't handle particular IR constructs.