[lworld] Integrated: 8257166: [lworld] CCP fails to optimize FlatArrayCheckNode
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.
This pull request has now been integrated.
Author: Tobias Hartmann <thartmann at openjdk.org>
Stats: 5 lines in 1 file changed: 2 ins; 0 del; 3 mod
8257166: [lworld] CCP fails to optimize FlatArrayCheckNode
More information about the valhalla-dev