This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Update loops in cfg manipulation functions
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)