Given this graph:
Point p1 = new Point;
Point p2 = new Point;
p1.x = v1;
p2.x = v2;
Point p = Phi(p1, p2);
int a = p.x;
Then, we should be able to fold a to Phi(v1, v2) if p1 and p2 cannot alias.
Another example:
Point p1 = new Point;
Point p2 = new Point;
Point p = Phi(p1, p2);
p.x = v1;
p2.x = v2;
int a = p.x;
Then, we should also be able to fold a into Phi(v1, v2) if p1 and p2 cannot alias.
Point p1 = new Point;
Point p2 = new Point;
p1.x = v1;
p2.x = v2;
Point p = Phi(p1, p2);
int a = p.x;
Then, we should be able to fold a to Phi(v1, v2) if p1 and p2 cannot alias.
Another example:
Point p1 = new Point;
Point p2 = new Point;
Point p = Phi(p1, p2);
p.x = v1;
p2.x = v2;
int a = p.x;
Then, we should also be able to fold a into Phi(v1, v2) if p1 and p2 cannot alias.
- relates to
-
JDK-8373495 C2: Aggressively fold loads from objects that have not escaped
-
- Open
-