decoupling interpreter buffers from the JIT's value processing
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Jul 6 12:10:15 UTC 2017
On 7/6/17 2:57 PM, Roland Westrelin wrote:
>
>> For example, ValueTypeNode::allocate() can wrap the allocated buffer in
>> new kind of node (ValueTypePtrNode):
>>
>> VTP == ValueTypePtrNode # in: (buffer, f1, ..., fn), type: VT*
>>
>> It mimics ValueTypeNode, but has a different type:
>>
>> VT == ValueTypeNode # in: (buffer, f1, ..., fn), type: VT
>
> Looks like we came to the same conclusion. I'm in the process of
> implementing the ValueTypePtrNode that you describe. Works well with a
Awesome! Thanks a lot for prompt experiments!
> guard with test simple test. Doesn't eliminate the allocations in your
> test yet.
By looking at IR for VectorTest::sunArrayL2 I came to the conclusion
that 2 steps should be enough to eliminate remaining allocations there:
(1) merge through phi;
(2) rematerialization (at uncommon trap)
Best regards,
Vladimir Ivanov
More information about the valhalla-dev
mailing list