RFR (M): Add missing compiler checks

Tobias Hartmann tobias.hartmann at oracle.com
Fri Jun 16 07:43:03 UTC 2017


Hi Zoltan,

On 14.06.2017 17:37, Zoltán Majó wrote:
>> - Why are the changes to bcEscapeAnalyzer.cpp necessary?
> 
> From a functional point of view, that change is not strictly necessary because T_VALUETYPE==T_OBJECT (that's the only difference between the handling of aastore and vastore). But maybe it's good to not use OBJECT in the code when we actually refer to a VT. I can also remove that change, if you want.

Okay, I agree.

>> - In parseHelper.cpp, why do we need a runtime check if we statically know that target_elem_klass != source_klass?
> 
> The two types may be unequal at compilation type but they can be equal at runtime.

Right, got it.

>> - I think it would be good to add a test that mixes value type arrays with non value type stores (and the other way around)
> I tried (see, e.g., test85() below). Unfortunately, compilation fails. What I'm not sure about is whether the verifier should (and can) catch such issues or should we really handle it in the compiler.

I'm not sure either but we can fix this case later, if necessary.

> Here is the updated code:
> http://cr.openjdk.java.net/~zmajo/valhalla/04.checks/webrev.01/

Looks good!

Thanks,
Tobias


More information about the valhalla-dev mailing list