review (S) for 6958485: fix for 6879921 was insufficient
Tom Rodriguez
tom.rodriguez at oracle.com
Fri Jun 4 10:18:45 PDT 2010
http://cr.openjdk.java.net/~never/6958485
6958485: fix for 6879921 was insufficient
Reviewed-by:
6879921 fixed a case where the superword optimization was attempting
to handle arrays of oops which we shouldn't allow. A guard was
inserted in stmts_can_pack which fixed the original issue. Testing
with bigapps has shown that there are other paths where this problem
can manifest. In particular this pattern:
dst[i] = (src[i] != null ? false : true);
shows that are_adjacent_refs can be reached through est_savings,
skipping the added is_java_primitive guard. The fix is to put an
is_java_primitive guard into are_adjacent_refs to guard the data_size
calls. Tested with new testcase.
More information about the hotspot-compiler-dev
mailing list