------- Comment #5 from rguenth at gcc dot gnu dot org 2009-01-16 20:04 -------
PRE shouldn't cause new evaluations - the issue here is that the CFG
# BLOCK 2 freq:900
# PRED: ENTRY [100.0%] (fallthru,exec)
si1_3 ={v} a;
si2_4 ={v} b;
# SUCC: 3 [100.0%] (fallthru,exec)
# BLOCK 3 freq:9100
# PRED: 8 [100.0%] (fallthru) 2 [100.0%] (fallthru,exec)
# i_31 = PHI <i_12(8), 0(2)>
foo ();
x.0_6 ={v} x;
if (x.0_6 == 8)
goto <bb 4>;
else
goto <bb 7>;
# SUCC: 4 [28.0%] (true,exec) 7 [72.0%] (false,exec)
# BLOCK 7 freq:6552
# PRED: 3 [72.0%] (false,exec)
goto <bb 5>;
# SUCC: 5 [100.0%] (fallthru)
# BLOCK 4 freq:2548
# PRED: 3 [28.0%] (true,exec)
i_7 = i_31 + 1;
# SUCC: 5 [100.0%] (fallthru,exec)
# BLOCK 5 freq:9100
# PRED: 7 [100.0%] (fallthru) 4 [100.0%] (fallthru,exec)
# i_1 = PHI <i_31(7), i_7(4)>
D.1253_8 = si1_3 % si2_4;
r.1_10 ={v} r;
D.1254_9 = D.1253_8 + r.1_10;
r.2_11 = D.1254_9 + i_1;
r ={v} r.2_11;
i_12 = i_1 + 1;
if (i_12 <= 99)
goto <bb 8>;
else
goto <bb 6>;
# SUCC: 8 [90.1%] (true,exec) 6 [9.9%] (false,exec)
# BLOCK 8 freq:8200
# PRED: 5 [90.1%] (true,exec)
goto <bb 3>;
# SUCC: 3 [100.0%] (fallthru)
# BLOCK 6 freq:900
# PRED: 5 [9.9%] (false,exec)
abort ();
# SUCC:
does not model the fact that foo () does not return.
Danny, do you have any suggestion (besides to try to avoid trapping stuff
somehow) to model this?
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dberlin at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38819