review (S) for 6958485: fix for 6879921 was insufficient
tom.rodriguez at oracle.com
Tue Jun 8 09:00:46 PDT 2010
It should assert in a fastdebug vm. Nothing bad will happen in a product VM, at least for that test case.
On Jun 8, 2010, at 12:39 AM, Volker Simonis wrote:
> Hi Tom,
> I was just wondering how the testcase should fail. I tried with
> 1.7.0-ea-b96 (hs 19.0-b02) on Linux_amd64 and 1.6.0_20-b02 (hs
> 16.3-b01) on Solaris_sparc (both 32 and 64 bit) without problems. Is
> the test specific to hs17 or does it not always fail?
> On Fri, Jun 4, 2010 at 7:18 PM, Tom Rodriguez <tom.rodriguez at oracle.com> wrote:
>> 6958485: fix for 6879921 was insufficient
>> 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