Hi Mike, Sorry for late reply (just back from vacation).
on 2024/2/8 03:58, Michael Meissner wrote: > On Wed, Feb 07, 2024 at 05:21:10PM +0800, Kewen.Lin wrote: >> on 2024/2/6 14:01, Michael Meissner wrote: >> Sorry for the possible confusion here, the "tune_proc" that I referred to is >> the variable in the above else branch: >> >> enum processor_type tune_proc = (TARGET_POWERPC64 ? PROCESSOR_DEFAULT64 : >> PROCESSOR_DEFAULT); >> >> It's either PROCESSOR_DEFAULT64 or PROCESSOR_DEFAULT, so it doesn't have a >> chance to be PROCESSOR_FUTURE, so the checking "tune_proc == >> PROCESSOR_FUTURE" >> is useless. > > PROCESSOR_DEFAULT can be PROCESSOR_FUTURE if somebody configures GCC with > --with-cpu=future. While in general it shouldn't occur, it is helpful to > consider all of the corner cases. But it sounds not true, I think you meant TARGET_CPU_DEFAULT instead? On one local ppc64le machine I tried to configure with --with-cpu=power10, I got {,OPTION_}TARGET_CPU_DEFAULT "power10" but PROCESSOR_DEFAULT is still PROCESSOR_POWER7 (PROCESSOR_DEFAULT64 is PROCESSOR_POWER8). I think these PROCESSOR_DEFAULT{,64} are defined by various headers: $ grep -r "define PROCESSOR_DEFAULT" gcc/config/rs6000/ gcc/config/rs6000/aix71.h:#define PROCESSOR_DEFAULT PROCESSOR_POWER7 gcc/config/rs6000/aix71.h:#define PROCESSOR_DEFAULT64 PROCESSOR_POWER7 gcc/config/rs6000/aix72.h:#define PROCESSOR_DEFAULT PROCESSOR_POWER7 gcc/config/rs6000/aix72.h:#define PROCESSOR_DEFAULT64 PROCESSOR_POWER7 gcc/config/rs6000/aix73.h:#define PROCESSOR_DEFAULT PROCESSOR_POWER8 gcc/config/rs6000/aix73.h:#define PROCESSOR_DEFAULT64 PROCESSOR_POWER8 gcc/config/rs6000/darwin.h:#define PROCESSOR_DEFAULT PROCESSOR_PPC7400 gcc/config/rs6000/darwin.h:#define PROCESSOR_DEFAULT64 PROCESSOR_POWER4 gcc/config/rs6000/freebsd64.h:#define PROCESSOR_DEFAULT PROCESSOR_PPC7450 gcc/config/rs6000/freebsd64.h:#define PROCESSOR_DEFAULT64 PROCESSOR_POWER8 gcc/config/rs6000/linux64.h:#define PROCESSOR_DEFAULT PROCESSOR_POWER7 gcc/config/rs6000/linux64.h:#define PROCESSOR_DEFAULT64 PROCESSOR_POWER8 gcc/config/rs6000/rs6000.h:#define PROCESSOR_DEFAULT PROCESSOR_PPC603 gcc/config/rs6000/rs6000.h:#define PROCESSOR_DEFAULT64 PROCESSOR_RS64A gcc/config/rs6000/vxworks.h:#define PROCESSOR_DEFAULT PROCESSOR_PPC604 , and they are unlikely to be updated later, no? btw, the given --with-cpu=future will make cpu_index never negative so ... else if (cpu_index >= 0) rs6000_tune_index = tune_index = cpu_index; else ... so there is no chance to enter "else" arm, that is, that arm only takes effect when no cpu/tune is given (neither -m{cpu,tune} nor --with-cpu=). BR, Kewen