------- Additional Comments From kazu at cs dot umass dot edu 2005-04-01 16:47 ------- Before FRE. (That is, the result of copyprop)
foo (array) { int D.1134; int D.1133; int * D.1132; <bb 0>: D.1132_3 = array_2 + 4B; # VUSE <TMT.0_9>; D.1133_4 = *D.1132_3; if (D.1133_4 != 0) goto <L0>; else goto <L1>; <L0>:; D.1132_7 = array_2 + 4B; # VUSE <TMT.0_9>; D.1134_8 = *D.1132_7; goto <bb 3> (<L2>); <L1>:; D.1134_6 = 0; # D.1134_1 = PHI <D.1134_8(1), 0(2)>; <L2>:; return D.1134_1; } After FRE. foo (array) { int D.1134; int D.1133; int * D.1132; <bb 0>: D.1132_3 = array_2 + 4B; # VUSE <TMT.0_9>; D.1133_4 = *D.1132_3; if (D.1133_4 != 0) goto <L0>; else goto <L1>; <L0>:; D.1132_7 = D.1132_3; # VUSE <TMT.0_9>; D.1134_8 = *D.1132_7; goto <bb 3> (<L2>); <L1>:; D.1134_6 = 0; # D.1134_1 = PHI <D.1134_8(1), 0(2)>; <L2>:; return D.1134_1; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20703