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
http://cr.openjdk.java.net/~roland/8214344/webrev.00/
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.
Roland.
More information about the hotspot-compiler-dev
mailing list