[patch] Update loops in cfg manipulation functions

Diego Novillo dnovillo@redhat.com
Fri Nov 17 19:15:00 GMT 2006


I think your patch may have introduced several regressions in mainline.
With revision @118934, I'm getting many instances of:

FAIL: gcc.c-torture/execute/20031204-1.c compilation,  -O3 -fomit-frame-pointer -funroll-loops  (internal compiler error)

All the failures trigger the CFG verifier in:

121               error ("verify_flow_info: Block %i has loop_father, but there are no loops",
(gdb) list 121
116           edge e;
117           edge_iterator ei;
118
119           if (bb->loop_father != NULL && current_loops == NULL)
120             {
121               error ("verify_flow_info: Block %i has loop_father, but there are no loops",
122                      bb->index);
123               err = 1;
124             }
125           if (bb->loop_father == NULL && current_loops != NULL)
(gdb) ptbb bb
;; basic block 2, loop depth 0, count 0
;; prev block 0, next block 1
;; pred:       ENTRY [100.0%]  (fallthru)
;; succ:
;; Registers live at start:  (nil)
(note 10 8 12 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(insn 12 10 13 2 (set (reg:SI 5 di)
        (const_int 0 [0x0])) 40 {*movsi_1} (nil)
    (nil))
(call_insn 13 12 14 2 (call (mem:QI (symbol_ref:DI ("exit") [flags 0x41] <function_decl 0x2aaaaab73000 exit>) [0 S1 A8])
        (const_int 0 [0x0])) 553 {*call_0} (nil)
    (expr_list:REG_NORETURN (const_int 0 [0x0])
        (expr_list:REG_EH_REGION (const_int 0 [0x0])
            (nil)))
    (expr_list:REG_DEP_TRUE (use (reg:SI 5 di))
        (nil)))
;; Registers live at end:  (nil)




More information about the Gcc-patches mailing list