On 20-12-13 09:48:35, Segher Boessenkool wrote: > Hi! > > On Sun, Dec 13, 2020 at 03:34:57PM +0100, Piotr Kubaj wrote: > > this is only default tuning (-mtune, not -mcpu). > > 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) > > > 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 :-) > > > 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.
> > > 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. So IMO this patch is good to go. Thanks, Piotr Kubaj.
signature.asc
Description: PGP signature