- This is sufficient, because every endless loop must have one kept block.
- This also prevents that the if-conversion enters endless loops at strange points.
This lead to exchanging a block, which is currently being recursed, so when later returning to the exchanged block (which now is an Id-node) in the walker stuff blew up.
for (i = 0; i < arity; i++) {
pred = get_irn_n(node, i);
if (!is_Block(pred)) {
for (i = 0; i < arity; i++) {
pred = get_irn_n(node, i);
if (!is_Block(pred)) {
- pred = get_nodes_block(pred);
- if (!is_Block(pred)) {
- /* if rare cases a kept node might have a bad block input */
- continue;
- }
+ /* It is sufficient to enter endless loops just at kept blocks, because
+ * every endless loop must have one. */
+ continue;
}
/* Sometimes the blocks died, but are still reachable through kept nodes.
* Make sure the algorithms that try to remove these reach them. */
}
/* Sometimes the blocks died, but are still reachable through kept nodes.
* Make sure the algorithms that try to remove these reach them. */