https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96931
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:fab77644842869adc8871e133e4c3f4c35b2b245 commit r11-3009-gfab77644842869adc8871e133e4c3f4c35b2b245 Author: Richard Biener <rguent...@suse.de> Date: Fri Sep 4 12:18:38 2020 +0200 tree-optimization/96931 - clear ctrl-altering flag more aggressively The testcase shows that we fail to clear gimple_call_ctrl_altering_p when the last abnormal edge goes away, causing an edge insert to a loop header edge when we have preheaders to split the edge unnecessarily. The following addresses this by more aggressively clearing the flag in cleanup_call_ctrl_altering_flag. 2020-09-04 Richard Biener <rguent...@suse.de> PR tree-optimization/96931 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): If there's a fallthru edge and no abnormal edge the call is no longer control-altering. (cleanup_control_flow_bb): Pass down the BB to cleanup_call_ctrl_altering_flag. * gcc.dg/pr96931.c: New testcase.