[llvm-dev] JIT compiler and calls to existing functions

Antoine Pitrou via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 30 04:42:07 PDT 2016


On Mon, 28 Mar 2016 21:07:48 -0700
Philip Reames via llvm-dev <llvm-dev at lists.llvm.org> wrote:

> Other advantages of keeping things symbolic:
> 1) You can use function attributes to provide optimization or semantic 
> information.
> 2) Linking modules works as expected when one of them contains the 
> definition.
> 3) You can get better code generation (i.e. pc relative addressing for 
> local symbols, etc..)
> 
> If the inttoptr scheme makes you happy, go for it.  I'm not telling you 
> its wrong, merely that there's another approach you should consider 
> which has it's own advantages.
> 
> Philip
> 
> p.s. Your point about compiling faster is off base.  Not because you're 
> wrong, but because if you're trying to optimize for compile speed at 
> that granularity, you really don't want to be using LLVM (or just about 
> any framework.)  LLVM does not make a good first tier JIT.  It's makes a 
> great high tier JIT, but if you really really care about compile time, 
> it is not the appropriate answer.

For the record, one way of compiling faster is caching compiled code
accross process invocations, and in this case you definitely need to use
symbolic function addresses.
(that's what we do in Numba, so this isn't an academic concern)

Regards

Antoine.




More information about the llvm-dev mailing list