https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83326
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Author: rguenth Date: Thu Dec 14 14:32:24 2017 New Revision: 255635 URL: https://gcc.gnu.org/viewcvs?rev=255635&root=gcc&view=rev Log: 2017-12-14 Richard Biener <rguent...@suse.de> PR tree-optimization/83326 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add may_be_zero parameter and handle it by not marking the first peeled copy as not exiting the loop. (try_peel_loop): Likewise. (canonicalize_loop_induction_variables): Use number_of_iterations_exit to handle the case of constant or zero iterations and perform loop header copying on-the-fly. * gcc.dg/tree-ssa/pr81388-2.c: Adjust. Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/pr81388-2.c trunk/gcc/tree-ssa-loop-ivcanon.c