RFR(S): 8214344: C2: assert(con.basic_type() != T_ILLEGAL) failed: elembt=byte; loadbt=void; unsigned=0

Roland Westrelin rwestrel at redhat.com
Wed Nov 28 12:27:48 UTC 2018


When inlined in test(), the loop from test_helper2(), is unrolled and
vectorized but then the compiler finds the upper bound of the loop is
known and small. That causes the main loop to be executed with a single
iteration. That single iteration loads an element from a stable array
at a constant index with a LoadVector node. Logic in LoadNode::Value()
attempts to fold it and the assert fires. The fix marks vector memory
accesses as mismatched so constant folding is not attempted.


More information about the hotspot-compiler-dev mailing list