Commit f4a14e09 by Jozef Lawrynowicz Committed by Jozef Lawrynowicz

sourcebuild.texi: Document check_effective_target_size20plus.

2018-11-26  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	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.

From-SVN: r266483
parent ffcf3b79
2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* doc/sourcebuild.texi: Document check_effective_target_size20plus.
Clarify documentation for check_effective_target_size32plus.
2018-11-26 Aaron Sawdey <acsawdey@linux.ibm.com> 2018-11-26 Aaron Sawdey <acsawdey@linux.ibm.com>
* config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename
...@@ -1369,8 +1369,13 @@ Target supports @code{long double} that is longer than @code{double}. ...@@ -1369,8 +1369,13 @@ Target supports @code{long double} that is longer than @code{double}.
@item ptr32plus @item ptr32plus
Target has pointers that are 32 bits or longer. 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 @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 @item 4byte_wchar_t
Target has @code{wchar_t} that is at least 4 bytes. Target has @code{wchar_t} that is at least 4 bytes.
......
2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* 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 <ubizjak@gmail.com> 2018-11-26 Uros Bizjak <ubizjak@gmail.com>
PR target/88178 PR target/88178
......
/* { dg-skip-if "Array too big" { "avr-*-*" "pdp11-*-*" } } */ /* { dg-require-effective-target size20plus } */
typedef __SIZE_TYPE__ size_t; typedef __SIZE_TYPE__ size_t;
......
/* PR middle-end/82063 - issues with arguments enabled by -Wall /* PR middle-end/82063 - issues with arguments enabled by -Wall
{ dg-do compile } { 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" } */ { dg-options "-O -Walloc-size-larger-than=1MiB -ftrack-macro-expansion=0" } */
void sink (void*); void sink (void*);
......
/* PR middle-end/82063 - issues with arguments enabled by -Wall /* PR middle-end/82063 - issues with arguments enabled by -Wall
{ dg-do compile } { 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" } */ { dg-options "-O -Walloc-size-larger-than=1MB -ftrack-macro-expansion=0" } */
void sink (void*); void sink (void*);
......
/* PR middle-end/82063 - issues with arguments enabled by -Wall /* PR middle-end/82063 - issues with arguments enabled by -Wall
{ dg-do compile } { 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" } */ { dg-options "-O -Walloc-size-larger-than=1GiB -ftrack-macro-expansion=0" } */
void sink (void*); void sink (void*);
......
/* PR middle-end/82063 - issues with arguments enabled by -Wall /* PR middle-end/82063 - issues with arguments enabled by -Wall
{ dg-do compile } { 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" } */ { dg-options "-O -Walloc-size-larger-than=1GB -ftrack-macro-expansion=0" } */
void sink (void*); void sink (void*);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fno-strict-aliasing -fstack-protector" } */ /* { dg-options "-O2 -fno-strict-aliasing -fstack-protector" } */
/* { dg-require-effective-target fstack_protector } */ /* { dg-require-effective-target fstack_protector } */
/* { dg-require-effective-target size20plus } */
typedef __SIZE_TYPE__ size_t; typedef __SIZE_TYPE__ size_t;
extern int sscanf (const char *, const char *, ...); extern int sscanf (const char *, const char *, ...);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O -fstack-protector -fno-strict-aliasing" } */ /* { dg-options "-O -fstack-protector -fno-strict-aliasing" } */
/* { dg-require-effective-target fstack_protector } */ /* { dg-require-effective-target fstack_protector } */
/* { dg-require-effective-target size20plus } */
extern void bar (char *); extern void bar (char *);
......
/* PR target/69071 */ /* PR target/69071 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -g" } */ /* { dg-options "-O2 -g" } */
/* { dg-skip-if "Array too big" { "avr-*-*" } } */ /* { dg-require-effective-target size20plus } */
void *bar (void *); void *bar (void *);
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fassociative-math -fno-signed-zeros -fno-trapping-math -fdump-tree-linterchange-details" } */ /* { 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 */ /* Copied from graphite/interchange-4.c */
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M]; int a[M][M], b[M][M];
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M]; int a[M][M], b[M][M];
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 */ /* Copied from graphite/interchange-4.c */
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 */ /* Copied from graphite/interchange-5.c */
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 */ /* Copied from graphite/interchange-6.c */
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M], c[M][M], d[M][M]; int a[M][M], b[M][M], c[M][M], d[M][M];
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M], c[M][M], d[M][M]; int a[M][M], b[M][M], c[M][M], d[M][M];
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M], c[M][M], d[M][M]; int a[M][M], b[M][M], c[M][M], d[M][M];
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M], c[M][M], d[M][M]; int a[M][M], b[M][M], c[M][M], d[M][M];
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -floop-interchange -fdump-tree-linterchange-details" } */ /* { 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 #define M 256
int a[M][M], b[M][M], c[M], d[M]; int a[M][M], b[M][M], c[M], d[M];
......
...@@ -2608,9 +2608,21 @@ proc check_effective_target_ptr32plus { } { ...@@ -2608,9 +2608,21 @@ proc check_effective_target_ptr32plus { } {
}] }]
} }
# Return 1 if we support 32-bit or larger array and structure sizes # Return 1 if we support 16-bit or larger array and structure sizes
# using default options, 0 otherwise. Avoid false positive on # using default options, 0 otherwise.
# targets with 20 or 24 bit address spaces. # 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 { } { proc check_effective_target_size32plus { } {
return [check_no_compiler_messages size32plus object { return [check_no_compiler_messages size32plus object {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment