RFR/RFC calling convention change for value types in compiled code

Roland Westrelin rwestrel at redhat.com
Mon Dec 5 13:54:48 UTC 2016


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.

> - 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?

> - 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.

Roland.


More information about the valhalla-dev mailing list