RFR(S): 8155241: Crash with assert in Xcomp mode and with disabled ReduceBulkZeroing
tobias.hartmann at oracle.com
Tue May 10 17:49:01 UTC 2016
On 10.05.2016 19:33, Vladimir Kozlov wrote:
> Is it only assert problem? Based on your comment "takes care of zeroing the array" it may be not enough. Can you explain more?
Yes, I think the assert is wrong because it assumes that a clonebasic arraycopy always takes care of zeroing (simply by overwriting) a newly allocated destination array. However, with -XX:-ReduceBulkZeroing this is not the case and the array is needlessly zeroed directly after the allocation and before the clonebasic which overwrites the array anyway.
Maybe Roland (CC'ed) can verify.
> On 5/10/16 3:26 AM, Tobias Hartmann wrote:
>> please review the following patch:
>> JDK-8076188 introduced code that eliminates an arraycopy if the destination is non escaping. The newly added LoadNode::find_previous_arraycopy() assumes that a clonebasic arraycopy that overwrites a newly allocated array always sets the corresponding InitializeNode to "complete", i.e., takes care of zeroing the array. However, this is only the case if ReduceBulkZeroing is enabled.
>> I fixed the assert and added a regression test.
>> Tested with JPRT and RBT (running).
More information about the hotspot-compiler-dev