------- Comment #4 from rguenth at gcc dot gnu dot org 2006-11-01 13:21 -------
sccp destroys dominators, unswitching only enables the sccp opportunity. The
destroying happens in cleanup_tree_cfg calling cleanup_control_flow calling
tree_purge_dead_eh_edges which we don't record the true return value here even
if it frees dominators, so dominators are not re-computed later in
cleanup_tree_cfg_loop.
We enter the function with the following BB:
;; basic block 5, loop depth 1, count 0
;; prev block 4, next block 6
;; pred: 4 [95.0%] (true,exec)
;; succ: 6 [100.0%] (fallthru,exec) 10 (ab,eh,loop_exit,exec)
<L16>:;
# D.1861_45 = V_MAY_DEF <D.1861_50>;
# TMT.44_3 = V_MAY_DEF <TMT.44_22>;
# TMT.45_4 = V_MAY_DEF <TMT.45_53>;
# TMT.46_5 = V_MAY_DEF <TMT.46_123>;
# TMT.47_6 = V_MAY_DEF <TMT.47_124>;
# TMT.49_7 = V_MAY_DEF <TMT.49_125>;
redraw_window (this_20);
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot
|dot org |org
Status|NEW |ASSIGNED
Last reconfirmed|2006-10-27 17:46:37 |2006-11-01 13:21:42
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29610