RFR(S): 8190704: [MVT] TestOnStackReplacement crashes with "Error mixing types"
Tobias Hartmann
tobias.hartmann at oracle.com
Fri Nov 3 14:21:57 UTC 2017
Hi,
please review the following patch:
https://bugs.openjdk.java.net/browse/JDK-8190704
http://cr.openjdk.java.net/~thartmann/8190704/webrev.00/
When running TestOnStackReplacement with -Xcomp we crash because we are inlining test4_body which returns MyValue1 into
test4 which expects a __Value return. I added a special case to handle this in parse1.cpp.
We also crash with "assert(!do_asserts || projs->catchall_memproj != __null) failed: must be found" in
CheckCastPPNode::Ideal() when trying to optimize a call returning __Value without separate memory and I/O projections.
I've modified the code in callGenerator.cpp to enable separation not only for method handle intrinsics but for all
callees returning __Value.
I added a test to TestBasicFunctionality to exercise some more cases of __Value in the method signature. This triggered
an assert in sharedRuntime.cpp. I removed the assert because I think it's too strong. If we want to disallow __Value in
the method signature, we should not assert but catch this during class loading or in the verifier.
All tests now pass with and without -Xcomp.
Thanks,
Tobias
More information about the valhalla-dev
mailing list