------- 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

Reply via email to