Hello, This morning I received the following message from GCC's Bugzilla: ----- Forwarded message from rguenth at gcc dot gnu dot org <gcc-bugzilla_at_gcc.gnu.org> ----- > Date: 4 Jul 2007 10:16:52 -0000 > From: rguenth at gcc dot gnu dot org <gcc-bugzilla_at_gcc.gnu.org> > To: ed_at_fxq.nl > Reply-To: gcc-bugzilla_at_gcc.gnu.org > Subject: [Bug tree-optimization/32500] [4.2 Regression] Loop optimization > limits range to size of array used inside loop > > [snip] > > scev_probably_wraps_p() returns false for the above chrec because for > the loop in question estimated_nb_iterations is 4(!) which is derived > from infer_loop_bounds_from_undefined. On the trunk this is fixed > by rewriting number of iterations analysis. On the 4.2 branch we > can fix this conservatively by > > Index: tree-ssa-loop-niter.c > =================================================================== > --- tree-ssa-loop-niter.c (revision 126260) > +++ tree-ssa-loop-niter.c (working copy) > _at__at_ -1747,6 +1747,12 _at__at_ infer_loop_bounds_from_undefined (struct > { > bb = bbs[i]; > > + /* If BB is not executed in each iteration of the loop, we cannot > + use the operations in it to infer reliable upper bound on the > + # of iterations of the loop. */ > + if (!dominated_by_p (CDI_DOMINATORS, loop->latch, bb)) > + continue; > + > for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi)) > { > tree stmt = bsi_stmt (bsi); > > I'm going to test this. > ----- End forwarded message ----- I just tested the patch on my desktop and it seems to work. The test code now compiles like it should. Hopefully it will be part of 4.2.1. Yours, -- Ed Schouten <ed_at_fxq.nl> WWW: http://g-rave.nl/
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:13 UTC