------- Comment #3 from rguenth at gcc dot gnu dot org 2006-05-02 08:04 ------- VRP causes the definition for SMT.5_37 to vanish, but it doesn't update the PHI node. After reassoc we have:
# SMT.5_26 = PHI <SMT.5_35(4), SMT.5_43(7), SMT.5_41(5)>; # bytes_left_22 = PHI <bytes_left_34(4), bytes_left_42(7), bytes_left_40(5)>; # seen_numbers_1 = PHI <0B(4), seen_numbers_15(7), seen_numbers_15(5)>; <L8>:; # bytes_left_36 = V_MAY_DEF <bytes_left_22>; # SMT.5_37 = V_MAY_DEF <SMT.5_26>; t1 (); if (seen_numbers_1 == 0B) goto <L0>; else goto <L1>; Invalid sum of incoming frequencies 9051, should be 8714 # SMT.5_20 = PHI <SMT.5_37(8), SMT.5_31(2), SMT.5_35(3)>; # bytes_left_16 = PHI <bytes_left_36(8), bytes_left_30(2), bytes_left_34(3)>; <L0>:; # bytes_left_32 = V_MAY_DEF <bytes_left_16>; # SMT.5_33 = V_MAY_DEF <SMT.5_20>; t1 (); while after VRP, the def for SMT.5_37 vanished: # SMT.5_26 = PHI <SMT.5_35(4), SMT.5_43(7), SMT.5_41(5)>; # bytes_left_22 = PHI <bytes_left_34(4), bytes_left_42(7), bytes_left_40(5)>; # seen_numbers_1 = PHI <0B(4), seen_numbers_15(7), seen_numbers_15(5)>; <L8>:; # bytes_left_36 = V_MAY_DEF <bytes_left_22>; t1 (); if (seen_numbers_1 == 0B) goto <L0>; else goto <L1>; Invalid sum of incoming frequencies 9051, should be 8714 # SMT.5_20 = PHI <SMT.5_37(8), SMT.5_31(2), SMT.5_35(3)>; # bytes_left_16 = PHI <bytes_left_36(8), bytes_left_30(2), bytes_left_34(3)>; <L0>:; # bytes_left_32 = V_MAY_DEF <bytes_left_16>; t1 (); but we didn't update the PHI node. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27093