------- Comment #8 from rguenth at gcc dot gnu dot org 2006-04-20 13:54 ------- Which, for the testcase in comment #4 gives us
;; Function f (f) Created value VH.0 for a_1 Created value VH.1 for *VH.0 vuses: (SMT.4_8) Created value VH.2 for (unsigned int *) VH.0 Created value VH.3 for (int *) VH.2 Created value VH.4 for VH.1 + VH.1 Created value VH.5 for <retval>_7 exp_gen[0] := { } tmp_gen[0] := { a_1 (VH.0) } avail_out[0] := { a_1 (VH.0) } exp_gen[2] := { a_1 (VH.0) , *VH.0 (VH.1) , (unsigned int *) VH.0 (VH.2) , (int *) VH.2 (VH.3) , VH.1 + VH.1 (VH.4) } tmp_gen[2] := { t_2 (VH.1) , b_3 (VH.2) , c_4 (VH.3) , D.1527_5 (VH.1) , D.1526_6 (VH.4) , <retval>_7 (VH.5) } avail_out[2] := { a_1 (VH.0) , t_2 (VH.1) , b_3 (VH.2) , c_4 (VH.3) , D.1526_6 (VH.4) , <retval>_7 (VH.5) } exp_gen[1] := { } tmp_gen[1] := { } avail_out[1] := { } Replaced *c_4 with t_2 in D.1527_5 = *c_4; f (a) { int * c; unsigned int * b; int t; int D.1527; int D.1526; <bb 2>: t_2 = *a_1; b_3 = (unsigned int *) a_1; c_4 = (int *) b_3; D.1527_5 = t_2; D.1526_6 = D.1527_5 + t_2; return D.1526_6; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27090