From: Aaron Sawdey Date: Tue, 22 Jun 2021 21:02:15 +0000 (-0500) Subject: Do not enable pcrel-opt by default X-Git-Tag: releases/gcc-11.2.0~156 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ea2f428bfef43d286e0aa789eccd120d9b829a1e;p=thirdparty%2Fgcc.git Do not enable pcrel-opt by default Backported from trunk. SPEC2017 testing on p10 shows that this optimization does not have a positive impact on performance. So we are no longer going to enable it by default. The test cases for it needed to be updated so they always enable it to test it. gcc/ * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out of OTHER_POWER10_MASKS so it will not be enabled by default. gcc/testsuite/ * gcc.target/powerpc/pcrel-opt-inc-di.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-df.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-di.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-hi.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-qi.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-sf.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-si.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-ld-vector.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-df.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-di.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-hi.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-qi.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-sf.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-si.c: Enable -mpcrel-opt to test it. * gcc.target/powerpc/pcrel-opt-st-vector.c: Enable -mpcrel-opt to test it. (cherry picked from commit b7574ca6edb5ac7fab741f46d4f50ac4294c8180) --- diff --git a/gcc/config/rs6000/rs6000-cpus.def b/gcc/config/rs6000/rs6000-cpus.def index 52ce84835f7e..6758296c0fd1 100644 --- a/gcc/config/rs6000/rs6000-cpus.def +++ b/gcc/config/rs6000/rs6000-cpus.def @@ -75,9 +75,11 @@ | OPTION_MASK_P9_VECTOR) /* Flags that need to be turned off if -mno-power10. */ +/* We comment out PCREL_OPT here to disable it by default because SPEC2017 + performance was degraded by it. */ #define OTHER_POWER10_MASKS (OPTION_MASK_MMA \ | OPTION_MASK_PCREL \ - | OPTION_MASK_PCREL_OPT \ + /* | OPTION_MASK_PCREL_OPT */ \ | OPTION_MASK_PREFIXED) #define ISA_3_1_MASKS_SERVER (ISA_3_0_MASKS_SERVER \ diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c index c82041c9dc67..6272f5c72c30 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-inc-di.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE unsigned int diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-df.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-df.c index d35862fcb6e0..0dcab311adda 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-df.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-df.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE double #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-di.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-di.c index 7e1ff99f20e8..95b60f3b1516 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-di.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-di.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE long long #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-hi.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-hi.c index 4143aeb73718..4a62dfbdf6e1 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-hi.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-hi.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE unsigned short #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-qi.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-qi.c index 30d3236f95c4..3a7aad45b55d 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-qi.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-qi.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE unsigned char #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-sf.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-sf.c index 9d1e2a1956f4..cb76bed04b83 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-sf.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-sf.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE float #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-si.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-si.c index 17be6fa17789..ad011d61448f 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-si.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-si.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE int #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-vector.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-vector.c index 8c12aea5acdc..c8f70b5d4331 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-vector.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-ld-vector.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE vector double #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-df.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-df.c index d795d35d8de8..686a37614621 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-df.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-df.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE double #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-di.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-di.c index bf57de4b8862..fefe6d30e01f 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-di.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-di.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE long long #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-hi.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-hi.c index 8822e767dfe5..d2856863da70 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-hi.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-hi.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE unsigned short #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-qi.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-qi.c index 2f756833717b..f617ffc6adf2 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-qi.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-qi.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE unsigned char #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-sf.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-sf.c index 3dd88aad8568..6eb20a3e0474 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-sf.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-sf.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE float #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-si.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-si.c index 78dc8120efeb..0cc0b304dd0d 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-si.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-si.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE int #define LARGE 0x20000 diff --git a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-vector.c b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-vector.c index 2c602eb3103f..d760819cfd2a 100644 --- a/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-vector.c +++ b/gcc/testsuite/gcc.target/powerpc/pcrel-opt-st-vector.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target powerpc_pcrel } */ -/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power10 -mpcrel-opt" } */ #define TYPE vector double #define LARGE 0x20000