[lworld] Integrated: 8265726: [lworld] C2 compilation fails with assert "uses must be dominated by definitions"

Tobias Hartmann thartmann at openjdk.java.net
Mon Apr 26 11:13:35 UTC 2021


On Fri, 23 Apr 2021 11:32:57 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> We hit an assert during `PhaseCFG` because the Phi input to a CatchNode does not dominate. The problem is in `PhaseMacroExpand::expand_mh_intrinsic_return` where we rewire projection nodes to merge the state of the slow call in. 
> 
> Here's the `invokeBasic` call before macro expansion:
> ![BeforeMacroExpand](https://user-images.githubusercontent.com/5312595/115862604-9b8e9700-a434-11eb-862f-eee42bcf0504.png)
> And after macro expansion:
> ![AfterMacroExpand](https://user-images.githubusercontent.com/5312595/115862618-a1847800-a434-11eb-8bd1-fa01d5f518fc.png)
> The input of the CatchNode was accidentally replaced by the Phi merging the exception IO from both calls.
> 
> The fix is to re-connect the CatchNode.
> 
> Thanks,
> Tobias

This pull request has now been integrated.

Changeset: 8dc4430d
Author:    Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/valhalla/commit/8dc4430d
Stats:     7 lines in 3 files changed: 3 ins; 3 del; 1 mod

8265726: [lworld] C2 compilation fails with assert "uses must be dominated by definitions"

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

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


More information about the valhalla-dev mailing list