collection of small fixes from running runtime tests with -Xcomp

Tobias Hartmann tobias.hartmann at
Wed Mar 15 08:12:25 UTC 2017

On 15.03.2017 09:08, Roland Westrelin wrote:
>>> Sometimes a lambda form compiled as the root of a compilation has a
>>> signature with object parameters but is passed a value type: so it's
>>> passed fields but has no way to know. This could be fixed by always
>>> passing value types as references when the target is a lambda form. But
>>> then, method handles intrinsics could get reference inputs and call a
>>> method that expects value types to be passed as fields. So the code in
>>> MethodHandles::generate_method_handle_dispatch() would need to be
>>> adjusted to shuffle arguments. That all sounds too complicated so
>>> instead I disallowed lambda form as root of compilations.
>> I wonder if it's okay to treat value types as objects in such cases.
> That would be a problem in the method handles runtime then, right?

Yes, I think so but unfortunately I'm not too familiar with the method handle runtime.

>> I think it would make sense to add "-Xcomp -XX:-TieredCompilation" to
>> the runtime tests (I did that before, see patch below).
> But then, if we break something in the compiler, the runtime foks will
> start to see failures in their tests. Wouldn't it be better to remove
> the -Xint from the runtime tests, force TieredCompilation off so we can
> run the VM with no option. Then we can run their tests by passing -Xcomp
> to jtreg?

Yes, you are right. Removing -Xint and adding -XX:-TieredCompilation is better.


More information about the valhalla-dev mailing list