------- Comment #5 from rguenth at gcc dot gnu dot org 2006-04-17 09:51 ------- Confirmed. Number of iteration analysis concludes the loop
ush_4 = label.23_3 + 510B; if (label.23_3 <= ush_4) goto <L6>; else goto <L2>; <L6>:; # ush_16 = PHI <ush_10(3), ush_4(1)>; # csum_14 = PHI <csum_9(3), 0(1)>; <L0>:; # VUSE <label_12>; D.2866_8 = *ush_16; csum_9 = D.2866_8 ^ csum_14; ush_10 = ush_16 - 2B; if (label.23_3 <= ush_10) goto <L8>; else goto <L9>; <L8>:; goto <bb 2> (<L0>); runs once: (.t75.ivcanon) (set_nb_iterations_in_loop = 1B)) Loop 1 iterates 0B times. Unrolled loop 1 completely. and the loop is gone. I guess its some signedness problem again: (add_to_evolution (loop_nb = 1) (chrec_before = ush_4) (to_add = 2B) (res = {ush_4, +, -2B}_1)) (evolution_function = {ush_4, +, -2B}_1)) (set_scalar_evolution (scalar = ush_16) (scalar_evolution = {ush_4, +, -2B}_1)) ) (analyze_scalar_evolution (loop_nb = 1) (scalar = 2B) (get_scalar_evolution (scalar = 2B) (scalar_evolution = 2B)) ) (set_scalar_evolution (scalar = ush_10) (scalar_evolution = {ush_4 - 2B, +, -2B}_1)) ) -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, rakdver at gcc dot gnu | |dot org Status|UNCONFIRMED |NEW Component|middle-end |tree-optimization Ever Confirmed|0 |1 GCC build triplet|sparc64-unknown-linux-gnu | GCC host triplet|sparc64-unknown-linux-gnu | GCC target triplet|sparc64-unknown-linux-gnu | Keywords| |wrong-code Known to fail| |4.1.0 Known to work| |4.0.3 4.2.0 Last reconfirmed|0000-00-00 00:00:00 |2006-04-17 09:51:04 date| | Summary|Sun disklabel checksum code |[4.1 Regression] Sun |isn't being generated |disklabel checksum code |properly. |isn't being generated | |properly. Target Milestone|--- |4.1.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27176