[LLVMdev] GSoC 2011: Fast JIT Code Generation for x86-64
echristo at apple.com
Tue Apr 5 14:04:11 PDT 2011
On Apr 5, 2011, at 12:41 PM, Óscar Fuentes wrote:
> Jim Grosbach <grosbach at apple.com> writes:
>>> To me, increasing coverage of the FastISel seemed more involved than
>>> directly emitting opcodes to memory, with a lesser outlook on
>>> reducing overhead.
>> That seems extremely unlikely. You'd be effectively re-implementing
>> both fast-isel and the MC binary emitter layers, and it sounds like a
>> new register allocator as well.
>> What Eric is suggesting is instead locating which IR constructs are
>> not being handled by fast-isel and are causing problems (i.e., are
>> being frequently encountered in your code-base) and implementing
>> fast-isel handling for them. That will remove the selectiondag
>> overhead that you've identified as the primary compile-time problem.
> At some point on the past someone was kind enough to add fast-isel for
> some instructions frequently emitted by my compiler, hoping that that
> would speed up JITting. The results were dissapointing (negligible,
> IIRC). Either fast-isel does not make much of a difference or the main
> inefficiency is elsewhere.
Seriously, if you haven't looked at how fast-isel does then you need to.
It is, in theory, almost no different than what he's planning on doing.
You may still be falling into selection dag. If you're not then some
investigation may be enlightening.
More information about the llvm-dev