https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99956
--- 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:6ff66d1ea48960fe96bb51a750c01135e65fe452 commit r12-125-g6ff66d1ea48960fe96bb51a750c01135e65fe452 Author: Richard Biener <rguent...@suse.de> Date: Wed Apr 7 14:53:40 2021 +0200 tree-optimization/99956 - improve loop interchange When we apply store motion and DSE manually to the bwaves kernel in gfortran.dg/pr81303.f loop interchange no longer happens because the perfect nest considered covers outer loops we cannot analyze strides for. The following compensates for this by shrinking the nest in this analysis which was already possible but on a too coarse granularity. It shares the shrinked nest with the rest of the DRs so the complexity overhead should be negligible. 2021-04-07 Richard Biener <rguent...@suse.de> PR tree-optimization/99956 * gimple-loop-interchange.cc (compute_access_stride): Try instantiating the access in a shallower loop nest if instantiating failed. (compute_access_strides): Pass adjustable loop_nest to compute_access_stride. * gfortran.dg/pr99956.f: New testcase.