Segher Boessenkool <seg...@kernel.crashing.org> writes: > Hi Jiu Fu, > > On Thu, Nov 07, 2019 at 10:40:41PM +0800, Jiufu Guo wrote: >> gcc/ >> 2019-11-07 Jiufu Guo <guoji...@linux.ibm.com> >> >> PR tree-optimization/88760 >> * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option. >> * gcc/common/config/rs6000/rs6000-common.c >> (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]: >> Turn on -funroll-loops and -munroll-only-small-loops. >> [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers. >> * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove >> set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS. >> Turn off -munroll-only-small-loops for explicit -funroll-loops. >> (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook. >> (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops. >> >> gcc.testsuite/ >> 2019-11-07 Jiufu Guo <guoji...@linux.ibm.com> >> >> PR tree-optimization/88760 >> * gcc.dg/pr59643.c: Update back to r277550. > > Okay for trunk. Thanks! Just some formatting stuff: Thanks Segher! I will update according for patch. > >> + /* Enable -munroll-only-small-loops with -funroll-loops to unroll small >> + loops at -O2 and above by default. */ > > The "l" of "loops" should align with the "E" of "Enable", and only two > spaces after a dot: > /* Enable -munroll-only-small-loops with -funroll-loops to unroll small > loops at -O2 and above by default. */ > >> +/* Implement targetm.loop_unroll_adjust. */ > > Only one space at the start of the comment. > >> +static unsigned >> +rs6000_loop_unroll_adjust (unsigned nunroll, struct loop * loop) > > struct loop *loop > >> + /* TODO: This is hardcoded to 10 right now. It can be refined, for >> + example we may want to unroll very small loops more times (4 perhaps). >> + We also should use a PARAM for this. */ > > There will be target-specific params soon, if I understood correctly > :-) Yes, It is what I want to do.
Thanks again! Jiufu BR. > > Cheers, > > > Segher