collection of small fixes from running runtime tests with -Xcomp

Roland Westrelin rwestrel at
Wed Mar 15 08:08:06 UTC 2017

Hi Tobias,

Thanks for looking at this.

> Please add a TODO to the "required to keep callee live?" comments so
> we can easily find those locations later.


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

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


More information about the valhalla-dev mailing list