RFR/RFC calling convention change for value types in compiled code
Tobias Hartmann
tobias.hartmann at oracle.com
Mon Dec 5 14:03:21 UTC 2016
Hi Roland,
On 05.12.2016 14:54, Roland Westrelin wrote:
>
> Hi Tobias,
>
> Thanks for the review.
>
>> - callGenerator.cpp:
>> - I would move the !ValueTypePassFieldsAsArgs condition in line 157
>> to the outer if
>
> It doesn't seem possible to move it to either:
>
> if (!is_static) {
>
> because it would skip:
>
> // Mark the call node as virtual, sort of:
> call->set_optimized_virtual(true);
> ...
>
> or:
>
> if (kit.argument(0)->is_ValueType()) {
>
> because it would then null check an non-existing receiver.
Right, I missed that.
>> - There are lots of "domain() -> domain_sig()" changes. Maybe it would make sense to not rename domain() but only add domain_cc().
>
> Isn't it better to differentiate the two clearly?
Yes, probably it's better to clearly differentiate. I'm fine with that.
>> - I saw that you also fixed the invokedirect problem you've mentioned. Was this problem triggered by one of the tests you added?
>
> Not by one of my tests but I think any test that uses invokedirect. So
> one of Zoltan's tests should trigger the problem.
Okay, sounds good.
Thanks,
Tobias
>
> Roland.
>
More information about the valhalla-dev
mailing list