After 7146442 fix in the next test only new array is eliminated when before both, array and object, were elimined:
int test0_3(int y) {
int x = 3;
Point p[] = new Point[1];
p[0] = new Point();
p[0].x = x;
p[0].y = 3 * x + y;
return p[0].x * p[0].y;
}
It happens because [0] element may contain NULL or new Point so that Point object marked as non scalar replacable in ConnectionGraph::adjust_scalar_replaceable_state().
To fix it do loads/stores domination checks in find_init_values().
int test0_3(int y) {
int x = 3;
Point p[] = new Point[1];
p[0] = new Point();
p[0].x = x;
p[0].y = 3 * x + y;
return p[0].x * p[0].y;
}
It happens because [0] element may contain NULL or new Point so that Point object marked as non scalar replacable in ConnectionGraph::adjust_scalar_replaceable_state().
To fix it do loads/stores domination checks in find_init_values().
- relates to
-
JDK-7146442 assert(false) failed: bad AD file
-
- Resolved
-