[llvm-commits] [PATCH] Reduce number of stubs used in 64bit code
Evan Phoenix
evan at fallingsnow.net
Tue Sep 22 14:36:56 PDT 2009
Anyone have a comment on this? If not, it would be great to make it
into 2.6 if possible.
Thanks!
- Evan
On Sep 1, 2009, at 2:34 PM, Evan Phoenix wrote:
> Currently the JIT running on a x86_64 platform can only call an
> external function through a stub. This is because of a conservative
> decision about how the encoding of a pc-relative address would
> should up in the machine code stream. These stubs incur a penalty,
> so any stubs that can be eliminated should be.
>
> The attached patch allows the JITEmitter to override the CodeGen's
> decision to use a stub by validating if a stub is actually needed.
> Thus any calling functions who's pc-relative offset fits directly in
> a call instruction are used the same as they would on a 32bit
> platform.
>
> "Long" calls are still done via the stub mechanism.
>
> This only effects the calling of externally defined functions. It
> changes nothing with regard to lazy/future JIT'd LLVM functions.
>
> Thanks,
>
> - Evan Phoenix
>
>
> <llvm-64bit-
> stubs5.diff>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list