https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110308
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- There are a difference in .optimized with respect to debug statements: GCC 13: # DEBUG i => 0 vs GCC trunk: # DEBUG i => NULL This is in BB 5. The change in Debug statements happened starting in ch2. Before ch2: <bb 5> [local count: 715863673]: # DEBUG BEGIN_STMT _3 = state[i_8]; _4 = _3->sample1; _5 = _4 + 1; _3->sample1 = _5; # DEBUG BEGIN_STMT i_23 = i_8 + 1; # DEBUG i => i_23 <bb 6> [local count: 1073741824]: # i_8 = PHI <0(4), i_23(5)> # DEBUG i => i_8 # DEBUG BEGIN_STMT if (channelCount.1_1 > i_8) goto <bb 5>; [66.67%] else goto <bb 7>; [33.33%] After: <bb 5> [local count: 715863673]: # i_9 = PHI <i_23(5), 0(4)> # DEBUG BEGIN_STMT _3 = state[i_9]; _4 = _3->sample1; _5 = _4 + 1; _3->sample1 = _5; # DEBUG BEGIN_STMT i_23 = i_9 + 1; # DEBUG i => i_23 # DEBUG i => i_23 # DEBUG BEGIN_STMT if (channelCount.1_1 > i_23) goto <bb 5>; [66.67%] else goto <bb 6>; [33.33%] While in GCC 13 after ch2 looks like: <bb 5> [local count: 715863673]: # i_9 = PHI <i_23(5), 0(4)> # DEBUG i => i_9 # DEBUG BEGIN_STMT _3 = state[i_9]; _4 = _3->sample1; _5 = _4 + 1; _3->sample1 = _5; # DEBUG BEGIN_STMT i_23 = i_9 + 1; # DEBUG i => i_23 # DEBUG i => i_23 # DEBUG BEGIN_STMT if (channelCount.1_1 > i_23) goto <bb 5>; [66.67%] else goto <bb 6>; [33.33%] Notice the `i => i_9` debug statement which is now missing.