Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
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.
|