diff mbox

[nvptx] More gcc testsuite markup

Message ID 55DC96D8.2010604@acm.org
State New
Headers show

Commit Message

Nathan Sidwell Aug. 25, 2015, 4:24 p.m. UTC
I've committed this to markup more test requirements.  Most are obvious enough.

nvptx doesn't expose a normal stack, so stack-based tests fail.  It also 
requires correct typing on function calls, so lying about that results in 
assembler errors.  Finally, it doesn't accept string constants, requiring 
expansion to an array of ints.

nathan
diff mbox

Patch

2015-08-25  Nathan Sidwell  <nathan@acm.org>

	* gcc.dg/20001117-1.c: Needs return_address.
	* gcc.dg/20020415-1.c: Needs alloca.
	* gcc.dg/graphite/id-pr44676.c: Needs profiling.
	* gcc.dg/graphite/pr60979.c: Needs nonlocal_goto
	* gcc.dg/pr63186.c: Needs label_values.
	* gcc.dg/torture/pr33848.c: Likwise.

	* lib/target-supports.exp (check_effective_target_fopenacc,
	check_effective_target_fopenmp): Disable for nvptx.
	* gcc.dg/graphite/run-id-pr47653.c: Disable for nvptx.
	* gcc.dg/stack-usage-1.c: Likewise.
	* gcc.dg/stack-usage-2.c: Likewise.
	* gcc.dg/unused-5.c: Likewise.
	* gcc.dg/unwind-1.c: Likewise.

Index: gcc.dg/20001117-1.c
===================================================================
--- gcc.dg/20001117-1.c	(revision 227166)
+++ gcc.dg/20001117-1.c	(working copy)
@@ -1,5 +1,6 @@ 
 /* { dg-do run } */
 /* { dg-options "-O2 -finstrument-functions" } */
+/* { dg-require-effective-target return_address } */
 
 extern void abort (void);
 extern void exit (int);
Index: gcc.dg/20020415-1.c
===================================================================
--- gcc.dg/20020415-1.c	(revision 227166)
+++ gcc.dg/20020415-1.c	(working copy)
@@ -1,9 +1,9 @@ 
 /* PR target/6303
    This testcase ICEd because s390 did not define
    ASM_SIMPLIFY_DWARF_ADDR hook.  */
-/* { dg-require-effective-target alloca } */
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -fpic -g" } */
+/* { dg-require-effective-target alloca } */
 
 static inline char *
 bar (unsigned long x, char *y)
Index: gcc.dg/graphite/id-pr44676.c
===================================================================
--- gcc.dg/graphite/id-pr44676.c	(revision 227166)
+++ gcc.dg/graphite/id-pr44676.c	(working copy)
@@ -1,4 +1,5 @@ 
 /* { dg-options "-O2 -fgraphite-identity -fprofile-generate" } */
+/* { dg-require-profiling "-fprofile-generate" } */
 
 int
 extend_options (int h, int map, int x, int y, int dx)
Index: gcc.dg/graphite/pr60979.c
===================================================================
--- gcc.dg/graphite/pr60979.c	(revision 227166)
+++ gcc.dg/graphite/pr60979.c	(working copy)
@@ -1,4 +1,5 @@ 
 /* { dg-options "-O -fgraphite-identity" } */
+/* { dg-require-effective-target nonlocal_goto } */
 
 #include <setjmp.h>
 
Index: gcc.dg/graphite/run-id-pr47653.c
===================================================================
--- gcc.dg/graphite/run-id-pr47653.c	(revision 227166)
+++ gcc.dg/graphite/run-id-pr47653.c	(working copy)
@@ -1,4 +1,6 @@ 
 /* { dg-options "-O -fstack-check=generic -ftree-pre -fgraphite-identity" } */
+/* nvptx doesn't expose a stack.  */
+/* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */
 
 int main ()
 {
Index: gcc.dg/pr63186.c
===================================================================
--- gcc.dg/pr63186.c	(revision 227166)
+++ gcc.dg/pr63186.c	(working copy)
@@ -1,5 +1,7 @@ 
 /* { dg-do link } */
 /* { dg-options "-O2" } */
+/* { dg-require-effective-target label_values } */
+
 void *a;
 int b, c, d;
 
Index: gcc.dg/stack-usage-1.c
===================================================================
--- gcc.dg/stack-usage-1.c	(revision 227166)
+++ gcc.dg/stack-usage-1.c	(working copy)
@@ -1,5 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-options "-fstack-usage" } */
+/* nvptx doesn't have a reg allocator, and hence no stack usage data.  */
+/* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */
 
 /* This is aimed at testing basic support for -fstack-usage in the back-ends.
    See the SPARC back-end for example (grep flag_stack_usage_info in sparc.c).
Index: gcc.dg/stack-usage-2.c
===================================================================
--- gcc.dg/stack-usage-2.c	(revision 227166)
+++ gcc.dg/stack-usage-2.c	(working copy)
@@ -1,5 +1,7 @@ 
 /* { dg-do compile } */
 /* { dg-options "-Wstack-usage=512" } */
+/* nvptx gets very upset with mismatched function types.  */
+/* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */
 
 int foo1 (void)  /* { dg-bogus "stack usage" } */
 {
Index: gcc.dg/torture/pr33848.c
===================================================================
--- gcc.dg/torture/pr33848.c	(revision 227166)
+++ gcc.dg/torture/pr33848.c	(working copy)
@@ -1,4 +1,3 @@ 
-/* { dg-require-effective-target label_values } */
 /* &&foo should be hoisted, but on most targets, excess register pressure
    forces it to be rematerialized before "data != &&foo".  On targets that
    have a "branch if registers are equal" instruction, this leads to the
@@ -7,6 +6,7 @@ 
    say that &&foo was the target of the branch, and the real target would
    then be removed as dead.  */
 /* { dg-do link } */
+/* { dg-require-effective-target label_values } */
 #define NVARS 30
 #define MULTI(X) \
   X( 0), X( 1), X( 2), X( 3), X( 4), X( 5), X( 6), X( 7), X( 8), X( 9), \
Index: gcc.dg/unused-5.c
===================================================================
--- gcc.dg/unused-5.c	(revision 227166)
+++ gcc.dg/unused-5.c	(working copy)
@@ -1,6 +1,8 @@ 
 /* { dg-do compile } */
 /* { dg-options "-Wunused" } */
 /* { dg-final { scan-assembler "string_to_look_for" } } */
+/* nvptx outputs strings as array of ints.  */
+/* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */
 
 /* 'volatile' variables get output and don't produce a warning about being
    unused.  */
Index: gcc.dg/unwind-1.c
===================================================================
--- gcc.dg/unwind-1.c	(revision 227166)
+++ gcc.dg/unwind-1.c	(working copy)
@@ -1,4 +1,4 @@ 
-/* { dg-do assemble { target { ! { powerpc-ibm-aix* } } } } */
+/* { dg-do assemble { target { ! { powerpc-ibm-aix* nvptx-*-* } } } } */
 /* { dg-options "-fleading-underscore -funwind-tables" } */
 
 void func(void) __asm("_func");
Index: lib/target-supports.exp
===================================================================
--- lib/target-supports.exp	(revision 227166)
+++ lib/target-supports.exp	(working copy)
@@ -819,6 +819,10 @@  proc check_effective_target_fgraphite {}
 # code, 0 otherwise.
 
 proc check_effective_target_fopenacc {} {
+    # nvptx can be built with the device-side bits of openacc, but it
+    # does not make sense to test it as an openacc host.
+    if [istarget nvptx-*-*] { return 0 }
+
     return [check_no_compiler_messages fopenacc object {
 	void foo (void) { }
     } "-fopenacc"]
@@ -828,6 +832,10 @@  proc check_effective_target_fopenacc {}
 # code, 0 otherwise.
 
 proc check_effective_target_fopenmp {} {
+    # nvptx can be built with the device-side bits of libgomp, but it
+    # does not make sense to test it as an openmp host.
+    if [istarget nvptx-*-*] { return 0 }
+
     return [check_no_compiler_messages fopenmp object {
 	void foo (void) { }
     } "-fopenmp"]