[Truffle] IndirectCallNode vs. another inline cache?

Stefan Marr java at stefan-marr.de
Mon Jul 7 14:29:53 UTC 2014


Hi Christian:

On 07 Jul 2014, at 14:51, Christian Humer <christian.humer at gmail.com> wrote:

>> I was wondering how exactly IndirectCallNode is optimized and what the characteristics are compared to using another inline cache.
>> Are the performance characteristics supposed to be similar?
>> 
> No. IndirectCallNode does not implement an inline cache. The inline cache for calls is guest language specific at the moment.

> For DirectCallNodes inlining and splitting may be performed.
> For IndirectCallNodes inlining and splitting is not performed.

Ok, that’s what I wanted to know. And I already switched to another custom inline cache.

> However we plan to add an implementation of a call inline cache to the Truffle API.

What exactly do you plan? Do you plan support for inline caches in the TruffleDSL?
Looking at the different caches I got, they look extremely similar. I actually tried to keep them as similar as possible, because I think that much of the boilerplate could be generate. It is always the same structure. Only the cache key, the test, the initialization/specialization logic, and the passed parameters, and the implementation for the general case differ.
Around that, I got a very repetitive structure. 

> Also, how are the interactions with tree inlining and splitting, etc?
> 
>> There are quite a few interactions between them. 

Sorry for the unclear question, it was in the context of IndirectCallNodes, but that seems to be answered, thanks. 

Best regards
Stefan


-- 
Stefan Marr
INRIA Lille - Nord Europe
http://stefan-marr.de/research/





More information about the graal-dev mailing list