[LLVMdev] [JIT] JIT trace tree works

Chris Lattner clattner at apple.com
Wed Apr 1 22:16:21 PDT 2009


On Apr 1, 2009, at 2:23 PM, Kasra wrote:
>> LLVM directly supports this sort of thing, what is it that you need?
>> Just compile one trace tree to one LLVM function.
>
>> -Chris
>
> How does it provide tracing?
> My goal it to make the JIT faster at runtime. By tracing I meant,  
> optional
> optimisation based on the execution of the software.
>
> For example if a node within the execution tree is rarely used when  
> it is
> invoked JIT will do little optimisations and for parts that is used
> frequently multiple optimisations occurs.

Only compile to LLVM IR the pieces of the code that are hot.  Cold  
pieces just run through the interpreter.  Falling off the trace tree  
returns to the interpreter.  Chaining of traces can be done by having  
traces end with indirect tail calls.

-Chris



More information about the llvm-dev mailing list