[jdk11u-dev] Integrated: 8223363: Bad node estimate assertion failure

Martin Doerr mdoerr at openjdk.java.net
Fri Mar 11 15:37:49 UTC 2022


On Thu, 10 Mar 2022 14:09:01 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

> Backport of [JDK-8223363](https://bugs.openjdk.java.net/browse/JDK-8223363) (including [JDK-8223502](https://bugs.openjdk.java.net/browse/JDK-8223502) and [JDK-8224648](https://bugs.openjdk.java.net/browse/JDK-8224648) as in original commit)
> loopTransform.cpp (introduction of `policy_unswitching` and `policy_maximally_unroll`) and loopnode.hpp required manual integration. Rest applies cleanly.

This pull request has now been integrated.

Changeset: 5f40afc1
Author:    Martin Doerr <mdoerr at openjdk.org>
URL:       https://git.openjdk.java.net/jdk11u-dev/commit/5f40afc10909061b5b4e17ec59856611e160e474
Stats:     443 lines in 6 files changed: 310 ins; 37 del; 96 mod

8223363: Bad node estimate assertion failure
8223502: Node estimate for loop unswitching is not correct: assert(delta <= 2 * required) failed: Bad node estimate
8224648: assert(!exceeding_node_budget()) failed: Too many NODES required! failure with ctw

Tighten the node estimates. New est_loop_clone_sz() implementation that will compute a "fan-out" complexity estimate as part of the size estimate (to better estimate complex loop body size after cloning). New est_loop_unroll_sz() function, used to estimate the size of a loop body att full/maximal unrolling. Correction to node budget final tests and asserts.

Reviewed-by: goetz
Backport-of: d222b01dee09f9963a3a0c7ae0088b64752b7809

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

PR: https://git.openjdk.java.net/jdk11u-dev/pull/874


More information about the jdk-updates-dev mailing list