Array not zeroed on creation
Krystal Mo
krystal.mo at oracle.com
Fri Sep 7 08:20:47 PDT 2012
+1 with Nils.
Running the test case with -XX:-OptimizeFill works around the problem;
running again, this time with -XX:+TraceOptimizeFill, shows:
$ ~/testjdk/hotspot-comp/bin/java -XX:-TieredCompilation
-XX:+TraceOptimizeFill -XX:+PrintCompilation Test7196857
194 1 java.util.Arrays::fill (21 bytes)
195 1 % Test7196857::main @ 89 (162 bytes)
fill intrinsic for:
111 StoreI === 138 131 109 11 [[ 124 131 ]]
@int[int:>=0]:exact+any *, idx=5; Memory:
@int[int:>=0]:NotNull:exact+any *, idx=5; !jvms: Arrays::fill @ bci:13
fill intrinsic for:
463 StoreI === 537 442 461 20 [[ 509 442 ]]
@int[int:>=0]:exact+any *, idx=6; Memory:
@int[int:10]:NotNull:exact+any *, idx=6; !orig=[500],488,[486],[111]
!jvms: Arrays::fill @ bci:13 Test7196857::main @ bci:83
Eliminated zeroing in allocation
not fill intrinsic candidate: variant store value
219 1 % Test7196857::main @ -2 (162 bytes) made not
entrant
Exception in thread "main" java.lang.RuntimeException: Array just after
allocation: [-1163019586, -1163019586, -1163019586, -1163019586,
-1163019586, -1163019586, -1163019586, -1163019586, -1163019586,
-1163019586]
at Test7196857.main(Test7196857.java:11)
Notice "Eliminated zeroing in allocation", which is caused by the
missing check that Nils mentioned.
- Kris
On 09/07/2012 10:11 PM, Nils Eliasson wrote:
> The bug reproduces with a fill or a corresponding zeroing for loop.
> But not without. So the bug is that there should be a check of uses
> between the allocation and the fill (or that the check is incomplete).
>
> //Nils
>
> Vitaly Davidovich skrev 2012-09-07 15:24:
>>
>> Dan,
>>
>> I've cc'd compiler dev and removed hotspot dev as this looks like a
>> compiler issue. Hope you don't mind.
>>
>> My hunch is that the Arrays.fill() is tripping this up - is it
>> reproducable if fill() is removed?
>>
>> Sent from my phone
>>
>> On Sep 7, 2012 8:39 AM, "Dan Hicks" <danhicks at fastmail.fm
>> <mailto:danhicks at fastmail.fm>> wrote:
>>
>> This bug has come to my attention:
>> http://stackoverflow.com/questions/12317668/java-int-array-initializes-with-nonzero-elements
>>
>> Basically there is a reproducible (by several people) situation
>> where a new int array is not zeroed. The author reports the
>> error is reproducible on HotSpot 64-bit server VM, Java version
>> from 1.7.0_04 to 1.7.0_10 on Gentoo Linux, Debian Linux (both
>> kernel 3.0 version) and MacOS Lion. (Not tested on 32-bit or
>> Windows.)
>>
>> Reportedly bug7196857 has been filed with Oracle.
>>
>> --
>> Dan Hicks
>> Nothing makes us so lonely as our secrets. --Paul Tournier
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20120907/7155b2dc/attachment.html
More information about the hotspot-compiler-dev
mailing list