From: jozefl Date: Mon, 26 Nov 2018 21:14:47 +0000 (+0000) Subject: 2018-11-26 Jozef Lawrynowicz X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0088d2e3453e640d537081e2dd3a53f2edc92b13;p=thirdparty%2Fgcc.git 2018-11-26 Jozef Lawrynowicz gcc/ChangeLog: * doc/sourcebuild.texi: Document check_effective_target_size20plus. Clarify documentation for check_effective_target_size32plus. gcc/testsuite/ChangeLog: * gcc.c-torture/compile/20151204.c: Add dg-require-effective-target size20plus. * gcc.dg/pr34225.c: Likewise. * gcc.dg/pr40971.c: Likewise. * gcc.dg/pr69071.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-10.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-2.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-3.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-5.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-6.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-7.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-8.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-9.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-11.c: Add dg-require-effective-target size32plus. * gcc.dg/Walloc-size-larger-than-4.c: Likewise. * gcc.dg/Walloc-size-larger-than-5.c: Likewise. * gcc.dg/Walloc-size-larger-than-6.c: Likewise. * gcc.dg/Walloc-size-larger-than-7.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-1.c: Likewise. * gcc.dg/tree-ssa/loop-interchange-1b.c: Likewise. * lib/target-supports.exp (check_effective_target_size20plus): New. (check_effective_target_size32plus): Update comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266483 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a6406ec3b84b..c2f1c4e0dc0a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-11-26 Jozef Lawrynowicz + + * doc/sourcebuild.texi: Document check_effective_target_size20plus. + Clarify documentation for check_effective_target_size32plus. + 2018-11-26 Aaron Sawdey * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 7734941511ac..b8ab0ee629f6 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1369,8 +1369,13 @@ Target supports @code{long double} that is longer than @code{double}. @item ptr32plus Target has pointers that are 32 bits or longer. +@item size20plus +Target has a 20-bit or larger address space, so at least supports +16-bit array and structure sizes. + @item size32plus -Target supports array and structure sizes that are 32 bits or longer. +Target has a 32-bit or larger address space, so at least supports +24-bit array and structure sizes. @item 4byte_wchar_t Target has @code{wchar_t} that is at least 4 bytes. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 749c573f8868..ef9ad1db5511 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,29 @@ +2018-11-26 Jozef Lawrynowicz + + * gcc.c-torture/compile/20151204.c: Add dg-require-effective-target + size20plus. + * gcc.dg/pr34225.c: Likewise. + * gcc.dg/pr40971.c: Likewise. + * gcc.dg/pr69071.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-10.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-2.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-3.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-5.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-6.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-7.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-8.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-9.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-11.c: Add dg-require-effective-target + size32plus. + * gcc.dg/Walloc-size-larger-than-4.c: Likewise. + * gcc.dg/Walloc-size-larger-than-5.c: Likewise. + * gcc.dg/Walloc-size-larger-than-6.c: Likewise. + * gcc.dg/Walloc-size-larger-than-7.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-1.c: Likewise. + * gcc.dg/tree-ssa/loop-interchange-1b.c: Likewise. + * lib/target-supports.exp (check_effective_target_size20plus): New. + (check_effective_target_size32plus): Update comment. + 2018-11-26 Uros Bizjak PR target/88178 diff --git a/gcc/testsuite/gcc.c-torture/compile/20151204.c b/gcc/testsuite/gcc.c-torture/compile/20151204.c index 6a46abf72257..e41f6c1dca9e 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20151204.c +++ b/gcc/testsuite/gcc.c-torture/compile/20151204.c @@ -1,4 +1,4 @@ -/* { dg-skip-if "Array too big" { "avr-*-*" "pdp11-*-*" } } */ +/* { dg-require-effective-target size20plus } */ typedef __SIZE_TYPE__ size_t; diff --git a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-4.c b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-4.c index 4b3a64b56abb..54e43cd9e6dc 100644 --- a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-4.c +++ b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-4.c @@ -1,6 +1,6 @@ /* PR middle-end/82063 - issues with arguments enabled by -Wall { dg-do compile } - { dg-skip-if "small address space" { "pdp11-*-*" } } + { dg-require-effective-target size32plus } { dg-options "-O -Walloc-size-larger-than=1MiB -ftrack-macro-expansion=0" } */ void sink (void*); diff --git a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-5.c b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-5.c index 4217ad651102..774c4cf271b9 100644 --- a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-5.c +++ b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-5.c @@ -1,6 +1,6 @@ /* PR middle-end/82063 - issues with arguments enabled by -Wall { dg-do compile } - { dg-skip-if "small address space" { "pdp11-*-*" } } + { dg-require-effective-target size32plus } { dg-options "-O -Walloc-size-larger-than=1MB -ftrack-macro-expansion=0" } */ void sink (void*); diff --git a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-6.c b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-6.c index a46fce7d0ca6..2dfc6632b9e4 100644 --- a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-6.c +++ b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-6.c @@ -1,6 +1,6 @@ /* PR middle-end/82063 - issues with arguments enabled by -Wall { dg-do compile } - { dg-skip-if "small address space" { "pdp11-*-*" } } + { dg-require-effective-target size32plus } { dg-options "-O -Walloc-size-larger-than=1GiB -ftrack-macro-expansion=0" } */ void sink (void*); diff --git a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-7.c b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-7.c index 4d9aafd661e0..2cc517fab59c 100644 --- a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-7.c +++ b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-7.c @@ -1,6 +1,6 @@ /* PR middle-end/82063 - issues with arguments enabled by -Wall { dg-do compile } - { dg-skip-if "small address space" { "pdp11-*-*" } } + { dg-require-effective-target size32plus } { dg-options "-O -Walloc-size-larger-than=1GB -ftrack-macro-expansion=0" } */ void sink (void*); diff --git a/gcc/testsuite/gcc.dg/pr34225.c b/gcc/testsuite/gcc.dg/pr34225.c index 659e176ad96a..e3373403a9cd 100644 --- a/gcc/testsuite/gcc.dg/pr34225.c +++ b/gcc/testsuite/gcc.dg/pr34225.c @@ -2,6 +2,7 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fno-strict-aliasing -fstack-protector" } */ /* { dg-require-effective-target fstack_protector } */ +/* { dg-require-effective-target size20plus } */ typedef __SIZE_TYPE__ size_t; extern int sscanf (const char *, const char *, ...); diff --git a/gcc/testsuite/gcc.dg/pr40971.c b/gcc/testsuite/gcc.dg/pr40971.c index 31dfd5e13989..4317638e7bdd 100644 --- a/gcc/testsuite/gcc.dg/pr40971.c +++ b/gcc/testsuite/gcc.dg/pr40971.c @@ -2,6 +2,7 @@ /* { dg-do compile } */ /* { dg-options "-O -fstack-protector -fno-strict-aliasing" } */ /* { dg-require-effective-target fstack_protector } */ +/* { dg-require-effective-target size20plus } */ extern void bar (char *); diff --git a/gcc/testsuite/gcc.dg/pr69071.c b/gcc/testsuite/gcc.dg/pr69071.c index 0396bbc70e20..3ae38112fa2b 100644 --- a/gcc/testsuite/gcc.dg/pr69071.c +++ b/gcc/testsuite/gcc.dg/pr69071.c @@ -1,7 +1,7 @@ /* PR target/69071 */ /* { dg-do compile } */ /* { dg-options "-O2 -g" } */ -/* { dg-skip-if "Array too big" { "avr-*-*" } } */ +/* { dg-require-effective-target size20plus } */ void *bar (void *); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1.c index 4a81e128e160..c7ebaefeab8a 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fassociative-math -fno-signed-zeros -fno-trapping-math -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size32plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ /* Copied from graphite/interchange-4.c */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-10.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-10.c index 57357569965b..8f5a9a03970e 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-10.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-10.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-11.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-11.c index 2a1b340a07b7..413b81e0f21e 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-11.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-11.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c index 7de2b403005a..a3063bbef458 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size32plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ /* Copied from graphite/interchange-4.c */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c index 247adc98c700..fbd46a2af8b6 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ /* Copied from graphite/interchange-5.c */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c index b239230157da..8028e36e2f17 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big stack" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big stack" { visium-*-* } } */ /* Copied from graphite/interchange-6.c */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-5.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-5.c index 8f13cd4617b3..81050a8de330 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-5.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-5.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M], c[M][M], d[M][M]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-6.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-6.c index a38fd9d28d4e..8a2692ecc047 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-6.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-6.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M], c[M][M], d[M][M]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-7.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-7.c index e6ad26f2a4e9..d55c1e2f41d0 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-7.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-7.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M], c[M][M], d[M][M]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-8.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-8.c index 5ed300aa165b..391b8a437f8b 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-8.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-8.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M], c[M][M], d[M][M]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-9.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-9.c index a984e47d8542..b5fda2d5097f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-9.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-9.c @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ -/* { dg-skip-if "too big data segment" { avr-*-* visium-*-* } } */ +/* { dg-require-effective-target size20plus } */ +/* { dg-skip-if "too big data segment" { visium-*-* } } */ #define M 256 int a[M][M], b[M][M], c[M], d[M]; diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 37791cfcf9df..fe7169158e48 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2608,9 +2608,21 @@ proc check_effective_target_ptr32plus { } { }] } -# Return 1 if we support 32-bit or larger array and structure sizes -# using default options, 0 otherwise. Avoid false positive on -# targets with 20 or 24 bit address spaces. +# Return 1 if we support 16-bit or larger array and structure sizes +# using default options, 0 otherwise. +# This implies at least a 20-bit address space, as no targets have an address +# space between 16 and 20 bits. + +proc check_effective_target_size20plus { } { + return [check_no_compiler_messages size20plus object { + char dummy[65537L]; + }] +} + +# Return 1 if we support 24-bit or larger array and structure sizes +# using default options, 0 otherwise. +# This implies at least a 32-bit address space, as no targets have an address +# space between 24 and 32 bits. proc check_effective_target_size32plus { } { return [check_no_compiler_messages size32plus object {