https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88760
--- Comment #33 from rguenther at suse dot de <rguenther at suse dot de> --- On Fri, 11 Oct 2019, segher at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88760 > > --- Comment #31 from Segher Boessenkool <segher at gcc dot gnu.org> --- > Gimple passes know a lot about machine details, too. > > Irrespective of if this is "low-level" or "high-level", it should be done > earlier than it is now. It should either be done right after expand, or > somewhere before it. Doing it in gimple seems easiest? Sure it's easiest in GIMPLE. But I'd say it shouldn't be done earlier, it should be done correctly - RTL unroll simply unrolls everything without any good costing. That is what needs to be fixed. Other than that, where we do cunroll on GIMPLE is a good spot I guess (need to do it _before_ IVOPTs at least, though I wanted to push that one later as well).