I had to fix a lot of bugs related to dead loops checks missing.
When we create a new node during transformation (call Ideal() methods)
it does not have associated type. In the case of a dead loop
(when a node references itself directly or through other nodes
but not through region or phi nodes) we could try to transform
this new node again (call Ideal() in the loop in transform_old()).
And we hit assert of SEGV (in product version) when we try to
access the node's type.
One solution is to catch the dead loop situation and stop
transformations. This is what I did before. But each time I missed
some cases. We can try to unify somehow this.
Second suggestion is the aggressive dead code elimination.
It should be trusted (no dead code escapes it) otherwise
we should keep first solution.
Third one is to assign a bottom type for new nodes created
during transformation to avoid the assert. This one is just
to hide the problem.
When we create a new node during transformation (call Ideal() methods)
it does not have associated type. In the case of a dead loop
(when a node references itself directly or through other nodes
but not through region or phi nodes) we could try to transform
this new node again (call Ideal() in the loop in transform_old()).
And we hit assert of SEGV (in product version) when we try to
access the node's type.
One solution is to catch the dead loop situation and stop
transformations. This is what I did before. But each time I missed
some cases. We can try to unify somehow this.
Second suggestion is the aggressive dead code elimination.
It should be trusted (no dead code escapes it) otherwise
we should keep first solution.
Third one is to assign a bottom type for new nodes created
during transformation to avoid the assert. This one is just
to hide the problem.
- relates to
-
JDK-4951940 Win: Server VM crashes with test/java/util/Date/DateGregorianCalendarTest.java
-
- Resolved
-
-
JDK-5035395 assert in DWhet test with -server -Xcomp on sparc
-
- Resolved
-
-
JDK-5064230 jit/common/misctests/whet crashed
-
- Resolved
-
-
JDK-6515373 Self referenced phi causes assert in falltrough case in RegionNode::Ideal
-
- Resolved
-
-
JDK-5040973 SIGSEGV in Type*Type::meet(const Type*)const+0x0
-
- Resolved
-
-
JDK-6297035 Automatically generated program crashes compiler on all platforms
-
- Closed
-
(1 relates to)