Hi Segher, Thanks a lot for your time and helpful comments!
Segher Boessenkool <seg...@kernel.crashing.org> writes: > Hi Jiufu, > > On Thu, Jul 09, 2020 at 04:01:38PM +0800, Jiufu Guo wrote: >> Segher Boessenkool <seg...@kernel.crashing.org> writes: ... > If the generic code decides to unroll big loops with calls *and* jumps, > there is a big problem there? > > On most targets, it should not unroll loops with calls *at all*, for > example. > .... >> > > > But there are a few cases where we *do* want to unroll, you say? What > is special about those cases, what do they do differently? Here are loops with early exit, but could be unroll. while (s < end && *s != '>') s++; IF ( setinitval .EQ. 1 .OR. setinitval .EQ. 3 ) grid%evbxy=initial_data_value I will recheck to indendify/confirm which loops we want to unroll but contains call or early exit. BR. Jiufu, > > > Segher