[lworld] Integrated: 8275276: [lworld] C2 compilation fails with assert "adr_type for memory phis only"

Tobias Hartmann thartmann at openjdk.java.net
Fri Oct 15 06:00:17 UTC 2021


On Thu, 14 Oct 2021 11:02:52 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> `PhiNode::verify_adr_type` fails with an assert because the phi has `Type::MEMORY` but `_adr_type` is not set. The phi is created when pushing bool/cmp pairs through a Phi in `PhaseIdealLoop::clone_iff` for Loop Unswitching:
> 
> ![Screenshot from 2021-10-14 12-58-37](https://user-images.githubusercontent.com/5312595/137304712-c1450fbf-dcf9-4d83-a5f6-36db8abb1c09.png)
> 
> Is converted to:
> 
> ![Screenshot from 2021-10-14 12-59-00](https://user-images.githubusercontent.com/5312595/137304754-f686d862-4be4-4438-9d10-c7c6bca95f89.png)
> 
> The code does not correctly handle `FlatArrayCheckNodes` which have a memory input as left input. The fix is to properly set the `_adr_type` in that case.
> 
> Best regards,
> Tobias

This pull request has now been integrated.

Changeset: cff488b1
Author:    Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/valhalla/commit/cff488b15374144d959865e7a58244fea2dd9c92
Stats:     75 lines in 2 files changed: 73 ins; 0 del; 2 mod

8275276: [lworld] C2 compilation fails with assert "adr_type for memory phis only"

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

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



More information about the valhalla-dev mailing list