Try fixing if-conversion in presence of endless loops.
authorChristoph Mallon <christoph.mallon@gmx.de>
Thu, 14 Apr 2011 17:36:39 +0000 (19:36 +0200)
committerChristoph Mallon <christoph.mallon@gmx.de>
Thu, 14 Apr 2011 17:36:39 +0000 (19:36 +0200)
Merge the lower block into the upper block (instead of the other way round), so we do not turn the upper block, which might still be in the DFS stack, into and ID node.

ir/opt/ifconv.c

index 0d1307a..7c2185f 100644 (file)
@@ -400,7 +400,7 @@ restart:
 
                                if (arity == 2) {
                                        unsigned mark;
-#if 1
+#if 0
                                        DB((dbg, LEVEL_1,  "Welding block %+F and %+F\n", block, mux_block));
                                        /* copy the block-info from the Mux-block to the block before merging */