[lworld] Integrated: 8271531: [lworld] Implicit null check optimization does not hoist constant load input

Tobias Hartmann thartmann at openjdk.java.net
Fri Jul 30 08:24:46 UTC 2021


On Fri, 30 Jul 2021 07:08:24 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> [JDK-8231561](https://bugs.openjdk.java.net/browse/JDK-8231561) added support for hoisting constant load inputs during C2's implicit null check optimization, assuming that it's only required if `!is_decoden`. However,  the following `andL` has both a `decodeHeapOop_not_null` val input and a `loadConUL32`  that needs to be hoisted:
> 
> 
>  239  loadConUL32  ===  1  [[ 238 ]] #5/0x0000000000000005
>  245  decodeHeapOop_not_null  === _  208  [[ 246  238  228  250 ]] java/lang/Object:NotNull *  ...
>  238  andL_rReg_mem_0  ===  1041  133  245  239  [[ 240  237 ]]
> 
> 
> The fix is to simply always check for constant loads inputs that require hoisting.
> 
> Best regards,
> Tobias

This pull request has now been integrated.

Changeset: 6699537a
Author:    Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/valhalla/commit/6699537ae0f4d32627c7d7c931071caaa5f0273b
Stats:     17 lines in 1 file changed: 0 ins; 0 del; 17 mod

8271531: [lworld] Implicit null check optimization does not hoist constant load input

-------------

PR: https://git.openjdk.java.net/valhalla/pull/508



More information about the valhalla-dev mailing list