On Tue, Feb 20, 2024 at 06:35:34PM +0800, Kewen.Lin wrote: > 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:
Yes, I was mistaken. You are correct TARGET_CPU_DEFAULT is set. I will change the comments. > 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=). Note, this is existing code. I didn't modify it. If we want to change it, we should do it as another patch. -- Michael Meissner, IBM PO Box 98, Ayer, Massachusetts, USA, 01432 email: meiss...@linux.ibm.com