[15] RFR (M): 8237581: Improve allocation expansion

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Jan 30 15:55:17 UTC 2020


> Good, but not complete. The "if (!always_slow) {" line also needs to 
> check if 'initial_slow_test == NULL' (Meaning: We need no initial check, 
> because we know the allocation size is positive and will fit in the 
> TLAB, so we can go directly to the fast path), which is computed further 
> down, so I moved the block down.

Looks good.

> Also, with the risk of complicating things - I changed '!always_slow' to 
> 'expand_fast_path' because that conveys the meaning better.

Not sure it improves readability, but I'm fine with it.

> http://cr.openjdk.java.net/~neliasso/8237581/webrev.change.2/

Looks good.

PS: made slight modifications to the comment:

       // Remove allocation node and return.
       // Size is a non-negative constant -> no initial check needed -> 
directly to fast path.
       // Also, no usages -> empty fast path -> no fall out to slow path 
-> nothing left.

Best regards,
Vladimir Ivanov

>>> On 2020-01-24 09:36, Nils Eliasson wrote:
>>>> Hi,
>>>>
>>>> This patch improves expand_allocate_common when there is no use of 
>>>> the allocation.
>>>>
>>>> Three cases are improved:
>>>>
>>>> - With unknown allocation length - don't expand the fast path. No 
>>>> allocation is needed when it isn't used. NegativeArraySizeException 
>>>> will still be caught by the slowpath.
>>>> - With known length inside the legal range - No fast path or slow 
>>>> path is needed. The allocation node is removed.
>>>> - With known length outside the legal range - only a slow path is 
>>>> needed.
>>>>
>>>> I also refactored the code a bit, keeping the general structure for 
>>>> easy diff, but extracting some routines too make it more readable.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8237581
>>>> Webrev: http://cr.openjdk.java.net/~neliasso/8237581/webrev.03/
>>>>
>>>> Please review!
>>>>
>>>> Best regards,
>>>> Nils Eliasson
>>>>
>>>>
>>>
> 


More information about the hotspot-compiler-dev mailing list