On 20-12-14 10:22:32, Segher Boessenkool wrote: > On Mon, Dec 14, 2020 at 03:57:27PM +0100, Piotr Kubaj wrote: > > > It is both, actually (-mcpu= implies -mtune=) > > Yes, but -mtune doesn't imply -mcpu. If I set up only -mtune, -mcpu is the > > generic one (ppc970 for BE) > > But that is not what the patch does? OK, then can you explain to me what it does since the generated assembly still specifies .machine power4?
This is my first attempt at improving GCC on powerpc* on FreeBSD and I'd really prefer not to break anything, but this SEEMS to be correct. > > > > > Linux also does similarly in linux64.h: > > > > 74 #undef PROCESSOR_DEFAULT > > > > 75 #define PROCESSOR_DEFAULT PROCESSOR_POWER7 > > > > 76 #undef PROCESSOR_DEFAULT64 > > > > 77 #define PROCESSOR_DEFAULT64 PROCESSOR_POWER8 > > > > > > Yes, but we still default to power4 on BE Linux (and power8 on LE). I > > > get lost in the macro maze here, not sure how that works :-) > > I still am baffled how this works :-/ > > > > > Although there is hard to explain (for me) setting to tune for POWER7 > > > > on 32-bits. POWER7 is 64-bit and it should be more reasonable to > > > > optimize for the last 32-bit machines that still may be in use (so G4). > > > > > > 7450 has very different optimisation than 970. Power7 and 970 have > > > largely similar pipelines. > > Yes, but the point is that users on 32-bit machines don't use POWER7, but > > most likely G4. > > Ah, but most users using -m32 are on a 64-bit machine! > > > > > That said, on the 64-bit front, we will just match the Linux setting. > > > > > > Compile a very simple test and look at the .machine in the generated .s? > > > Does that do what you want? > > Yes, I just tested it (on BE). > > pkubaj@talos:$/usr/home/pkubaj$ cat test.c > > #include <stdio.h> > > > > int main() > > { > > printf("Hello world!"); > > } > > > > I built it twice, with GCC 9.3 without my patch and with GCC 10.1 with my > > patch. The only difference is: > > pkubaj@talos:$/usr/home/pkubaj$ diff -u test.s.9 test.s.10 > > --- test.s.9 2020-12-14 15:51:43.203263000 +0100 > > +++ test.s.10 2020-12-14 15:52:01.147238000 +0100 > > @@ -43,5 +43,5 @@ > > .cfi_endproc > > .LFE1: > > .size main,.-main > > - .ident "GCC: (FreeBSD Ports Collection) 9.3.0" > > + .ident "GCC: (FreeBSD Ports Collection) 10.2.0" > > .section .note.GNU-stack,"",@progbits > > > > Both have .machine power4: > > pkubaj@talos:$/usr/home/pkubaj$ grep .machine test.s.* > > test.s.10: .machine power4 > > test.s.9: .machine power4 > > > > I'm not sure where GCC sets power8 for LE, but it's definitely somewhere > > else. > > Yes... And I do not know where this power4 comes from. Mysteries :-) > > > So IMO this patch is good to go. > > Yes, thanks! > > > Segher --
signature.asc
Description: PGP signature