RFR: 8228622: [lworld] Ineffective codegeneration for flattened arrays checks causes large performance regression on List iteration

Tobias Hartmann tobias.hartmann at oracle.com
Mon Sep 16 14:27:20 UTC 2019

Hi Roland,

now the following tests fail:

SIGSEGV in PhaseIdealLoop::clone_loop_handle_data_uses

#  Internal Error (open/src/hotspot/share/opto/loopopts.cpp:1252), pid=18112, tid=18122
#  assert(obj != __null && addr->in(AddPNode::Base) == addr->in(AddPNode::Address)) failed:
malformed AddP?

Caused by: java.lang.RuntimeException: assertTrue: expected true, was false
	at jdk.test.lib.Asserts.fail(Asserts.java:594)
	at jdk.test.lib.Asserts.assertTrue(Asserts.java:486)
	at jdk.test.lib.Asserts.assertTrue(Asserts.java:472)
	at compiler.valhalla.valuetypes.TestLWorld.test92_verifier(TestLWorld.java:2272)

Internal stress test:
[stress.process.err] === Meet Not Symmetric ===
[stress.process.err] t   =                   NotNull *+bot
[stress.process.err] this=                   klass java/lang/Object: 0x00007f8e5c34a830 *
[stress.process.err] mt=(t meet this)=       NotNull *+bot
[stress.process.err] t_dual=                 AnyNull *+top (inline_depth=InlineDepthTop)
[stress.process.err] this_dual=              :AnyNull *
[stress.process.err] mt_dual=                AnyNull *+top (inline_depth=InlineDepthTop)
[stress.process.err] mt_dual meet t_dual=    AnyNull *+top (inline_depth=InlineDepthTop)
[stress.process.err] mt_dual meet this_dual= :AnyNull *

Let me know if you need more information to reproduce.

Best regards,

On 16.09.19 14:42, Roland Westrelin wrote:
>> I haven't looked at this in detail yet but I've submitted testing and I'm seeing the following
>> failures with the Valhalla compiler tests:
>> #  Internal Error (open/src/hotspot/share/opto/parse1.cpp:1738), pid=15342, tid=15354
>> #  assert(!t->isa_valuetype() || n->is_ValueType()) failed: inconsistent typeflow info
>> #  Internal Error (open/src/hotspot/share/opto/graphKit.cpp:2895), pid=15099, tid=15112
>> #  assert(!gvn().type(res)->maybe_null()) failed: receiver should never be null
>> #  Internal Error (open/src/hotspot/share/runtime/deoptimization.cpp:1140), pid=1741, tid=1742
>> #  assert(value->type() == T_OBJECT) failed: object element expected
>> Also, some tests fail due to invalid results.
> Thanks. Here is an updated webrev:
> http://cr.openjdk.java.net/~roland/8228622/webrev.01/
> Roland.

More information about the valhalla-dev mailing list