[lworld] Integrated: 8257166: [lworld] CCP fails to optimize FlatArrayCheckNode

Tobias Hartmann thartmann at openjdk.java.net
Fri Nov 27 09:29:06 UTC 2020


On Fri, 27 Nov 2020 08:05:12 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> We hit `assert(!t->is_flat() && !t->is_not_flat()) failed: Should have been optimized out` during macro expansion of a FlatArrayCheckNode because the input array is known to be not flat but the check hasn't been optimized out by IGVN. The problem is that when CCP processes the node via `FlatArrayCheckNode::Value` the type immediately goes from TOP to BOTTOM because the input array hasn't been processed yet (still has type TOP). Afterwards, the node is not processed anymore although the type could be improved once the input array has been processed and is now known to be not flat.
> 
> We should add verification code that catches such cases. I've filed [JDK-8257197](https://bugs.openjdk.java.net/browse/JDK-8257197) to do this in mainline. A quick prototype suggests that we have multiple similar issues in mainline code.
> 
> Thanks,
> Tobias

This pull request has now been integrated.

Changeset: 41ee0c8d
Author:    Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/valhalla/commit/41ee0c8d
Stats:     5 lines in 1 file changed: 2 ins; 0 del; 3 mod

8257166: [lworld] CCP fails to optimize FlatArrayCheckNode

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

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


More information about the valhalla-dev mailing list