------- Comment #2 from rguenth at gcc dot gnu dot org 2006-04-27 09:44 ------- Note that loop information looks corrupt:
(gdb) print *loop $2 = {num = 144085752, header = 0xb7fbb178, latch = 0xb7e4c3c0, lpt_decision = {decision = LPT_NONE, times = 0}, ninsns = 0, av_ninsns = 0, num_nodes = 0, depth = -1, pred = 0x0, level = 2, outer = 0x0, inner = 0x0, next = 0x0, copy = 0x0, aux = 0x0, nb_iterations = 0x0, estimated_nb_iterations = 0x69, bounds = 0xb7fbb178, single_exit = 0x8948888, parallel_p = 1 '\001'} (gdb) print *loop->header $3 = {stmt_list = 0x0, preds = 0x0, succs = 0x896ad70, aux = 0x8948888, loop_father = 0x896d608, dom = {0x896d608, 0xb7fbb188}, prev_bb = 0xb7fbb188, next_bb = 0xb7fbb190, il = {rtl = 0xb7fbb190}, phi_nodes = 0x896d750, predictions = 0x8947938, count = -5189358841774755424, index = -1208241752, loop_depth = -1208241752, frequency = -1208241744, flags = -1208241744} The loop walking in peel_loops_completely looks bogus, as we're modifying the loop tree. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27335