[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