[Bug tree-optimization/27093] [4.2 Regression] verify_ssa failed: definition does not dominate use
------- Comment #4 from rguenth at gcc dot gnu dot org 2006-05-02 08:36 -------
Now, this is more like caused by cfg_cleanup. loop_optimizer_init () inserts a
basic block 11, so we have
(gdb) call debug_bb_n(6)
;; basic block 6, loop depth 0, count 0
;; prev block 5, next block 7
;; pred: 5 [90.0%] (true,exec)
;; succ: 7 [100.0%] (fallthru,exec)
<L19>:;
entry_14 = (struct mark_entry *) D.1574_13;
(gdb) call debug_bb_n(7)
;; basic block 7, loop depth 1, count 0
;; prev block 6, next block 11
;; pred: 11 [100.0%] (fallthru,dfs_back,exec) 6 [100.0%]
(fallthru,exec)
;; succ: 11 [90.0%] (true,exec) 8 [10.0%] (loop_exit,false,exec)
# SMT.5_44 = PHI <SMT.5_43(11), SMT.5_41(6)>;
# bytes_left_7 = PHI <bytes_left_42(11), bytes_left_40(6)>;
# entry_6 = PHI <entry_19(11), entry_14(6)>;
<L6>:;
D.1625_2 = (int *) entry_6;
# VUSE <bytes_left_7>;
D.1577_18 = MEM[base: D.1625_2];
# bytes_left_42 = V_MAY_DEF <bytes_left_7>;
# SMT.5_43 = V_MAY_DEF <SMT.5_44>;
t3 (D.1577_18);
entry_19 = entry_6 + 4B;
# VUSE <bytes_left_42>;
bytes_left.0_17 = bytes_left;
if (bytes_left.0_17 != 0) goto <L25>; else goto <L8>;
(gdb) call debug_bb_n(11)
;; basic block 11, loop depth 1, count 0
;; prev block 7, next block 8
;; pred: 7 [90.0%] (true,exec)
;; succ: 7 [100.0%] (fallthru,dfs_back,exec)
<L25>:;
goto <bb 7> (<L6>);
after VRP, cfg_cleanup removes that block again and leaves us with the broken
(gdb) call debug_bb_n(6)
;; basic block 6, loop depth 0, count 0
;; prev block 5, next block 7
;; pred: 5 [90.0%] (true,exec)
;; succ: 7 [100.0%] (fallthru,exec)
<L19>:;
entry_14 = (struct mark_entry *) D.1574_13;
$23 = (struct basic_block_def *) 0xb7ce6f00
(gdb) call debug_bb_n(7)
;; basic block 7, loop depth 1, count 0
;; prev block 6, next block 8
;; pred: 7 [90.0%] (true,exec) 6 [100.0%] (fallthru,exec)
;; succ: 7 [90.0%] (true,exec) 8 [10.0%] (loop_exit,false,exec)
# SMT.5_44 = PHI <SMT.5_43(7), SMT.5_41(6)>;
# bytes_left_7 = PHI <bytes_left_42(7), bytes_left_40(6)>;
# entry_6 = PHI <entry_19(7), entry_14(6)>;
<L6>:;
D.1625_2 = (int *) entry_6;
# VUSE <bytes_left_7>;
D.1577_18 = MEM[base: D.1625_2];
# bytes_left_42 = V_MAY_DEF <bytes_left_7>;
t3 (D.1577_18);
entry_19 = entry_6 + 4B;
# VUSE <bytes_left_42>;
bytes_left.0_17 = bytes_left;
if (bytes_left.0_17 != 0) goto <L6>; else goto <L8>;
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rakdver at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27093
------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
Reply to: