[LWorld] Value type array support for C2 (and lots of bug fixes) (original) (raw)

Tobias Hartmann tobias.hartmann at oracle.com
Wed May 16 12:27:37 UTC 2018


Hi,

I've implemented value type array support for C2: http://cr.openjdk.java.net/~thartmann/valhalla/lworld_arrays/webrev.00/

All compiler and runtime tests now pass!

Here are the gory details:

Open issues:

If there are no objections, I would like to push this large change and address the open issues in smaller follow-up patches.

Thanks, Tobias

[1] Meeting TypeValueType with other types is currently not symmetric:

=== Meet Not Symmetric === t = valuetype[3]:{int, byte, compiler/valhalla/valuetypes/MyValue2Inline} this= valuetype[8]:{long, int, int, short, java/lang/Integer, [I, compiler/valhalla/valuetypes/MyValue2, compiler/valhalla/valuetypes/MyValue2} mt=(t meet this)= java/lang/Object:NotNull * t_dual= valuetype[3]:{int, byte, compiler/valhalla/valuetypes/MyValue2Inline} this_dual= valuetype[8]:{long, int, int, short, java/lang/Integer, [I, compiler/valhalla/valuetypes/MyValue2, compiler/valhalla/valuetypes/MyValue2} mt_dual= java/lang/Object:AnyNull *,iid=top (inline_depth=InlineDepthTop) mt_dual meet t_dual= java/lang/Object:AnyNull * mt_dual meet this_dual= java/lang/Object:AnyNull *

V [libjvm.so+0x18eb1a1] Type::meet_helper(Type const*, bool) const+0x2b1 V [libjvm.so+0x18ed113] TypeAry::xmeet(Type const*) const+0xf3 V [libjvm.so+0x18eaf34] Type::meet_helper(Type const*, bool) const+0x44 V [libjvm.so+0x18f53d0] TypeAryPtr::xmeet_helper(Type const*) const+0xf0 V [libjvm.so+0x18e1a96] TypePtr::xmeet(Type const*) const+0x16 V [libjvm.so+0x18eaf34] Type::meet_helper(Type const*, bool) const+0x44 V [libjvm.so+0x911fc4] ConstraintCastNode::dominating_cast(PhaseGVN*, PhaseTransform*) const+0x364 V [libjvm.so+0x912a28] CheckCastPPNode::Identity(PhaseGVN*)+0x38 V [libjvm.so+0x16754b9] PhaseGVN::transform_no_reclaim(Node*)+0x189 V [libjvm.so+0xea0bea] GraphKit::gen_checkcast(Node*, Node*, Node**)+0x2ea



More information about the valhalla-dev mailing list