https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113994
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 57574 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57574&action=edit patch A quick-and-dirty thing would be indeed to simply include all exit blocks like with the attached. I'll note that df_analyze_loop has serious scalability issues so IMO we should try to get rid of it and its uses. I don't know the doloop pass at all (invariant motion also uses this function), but it would be best if it could do df_analyze on the whole function and either decide it doesn't need to update DF during transform since it doesn't effect other loops it processes or it would update DF info manually.