https://gcc.gnu.org/g:8cfa27b5305758ed8f973583e12363461aa80a53

commit 8cfa27b5305758ed8f973583e12363461aa80a53
Author: Thomas Schwinge <tschwi...@baylibre.com>
Date:   Mon Jul 22 14:40:34 2024 +0200

    Move from 'gcc.target/nvptx/nvptx.exp' into 'target-supports.exp' additions 
for nvptx target
    
            gcc/testsuite/
            * gcc.target/nvptx/nvptx.exp
            (check_effective_target_default_ptx_isa_version_at_least)
            (check_effective_target_default_ptx_isa_version_at_least_6_0)
            (check_effective_target_runtime_ptx_isa_version_at_least)
            (check_effective_target_runtime_ptx_alias)
            (add_options_for_ptx_alias): Move...
            * lib/target-supports.exp
            (check_nvptx_default_ptx_isa_version_at_least)
            (check_effective_target_nvptx_default_ptx_isa_version_at_least_6_0)
            (check_nvptx_runtime_ptx_isa_version_at_least)
            (check_effective_target_nvptx_runtime_alias_ptx)
            (add_options_for_nvptx_alias_ptx): ... here.
            * gcc.target/nvptx/alias-1.c: Adjust.
            * gcc.target/nvptx/alias-2.c: Likewise.
            * gcc.target/nvptx/alias-3.c: Likewise.
            * gcc.target/nvptx/alias-4.c: Likewise.
            * gcc.target/nvptx/alias-to-alias-1.c: Likewise.
            * gcc.target/nvptx/alias-weak-1.c: Likewise.
            * gcc.target/nvptx/uniform-simt-5.c: Likewise.
            gcc/
            * doc/sourcebuild.texi (Effective-Target Keywords): Document
            'nvptx_default_ptx_isa_version_at_least_6_0',
            'nvptx_runtime_alias_ptx'.
            (Add Options): Document 'nvptx_alias_ptx'.
    
    (cherry picked from commit a121af90fe9244258c8620901dd6fa22537767bb)

Diff:
---
 gcc/ChangeLog.omp                                 |  8 +++
 gcc/doc/sourcebuild.texi                          | 14 +++++
 gcc/testsuite/ChangeLog.omp                       | 23 ++++++++
 gcc/testsuite/gcc.target/nvptx/alias-1.c          |  4 +-
 gcc/testsuite/gcc.target/nvptx/alias-2.c          |  4 +-
 gcc/testsuite/gcc.target/nvptx/alias-3.c          |  4 +-
 gcc/testsuite/gcc.target/nvptx/alias-4.c          |  4 +-
 gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c |  2 +-
 gcc/testsuite/gcc.target/nvptx/alias-weak-1.c     |  2 +-
 gcc/testsuite/gcc.target/nvptx/nvptx.exp          | 66 ---------------------
 gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c   |  4 +-
 gcc/testsuite/lib/target-supports.exp             | 72 +++++++++++++++++++++++
 12 files changed, 129 insertions(+), 78 deletions(-)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index b09e2b25d91e..337fc2f3a23e 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -1,5 +1,13 @@
 2024-12-18  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       Backported from trunk:
+       2024-09-05  Thomas Schwinge  <tschwi...@baylibre.com>
+
+       * doc/sourcebuild.texi (Effective-Target Keywords): Document
+       'nvptx_default_ptx_isa_version_at_least_6_0',
+       'nvptx_runtime_alias_ptx'.
+       (Add Options): Document 'nvptx_alias_ptx'.
+
        Backported from trunk:
        2024-09-04  Thomas Schwinge  <tschwi...@baylibre.com>
 
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 8e4e59ac44c7..df2b5bf1ee92 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2409,6 +2409,17 @@ MSP430 target has the small memory model enabled 
(@code{-msmall}).
 MSP430 target has the large memory model enabled (@code{-mlarge}).
 @end table
 
+@subsubsection nvptx-specific attributes
+
+@table @code
+@item nvptx_default_ptx_isa_version_at_least_6_0
+nvptx code by default compiles for at least PTX ISA version 6.0.
+
+@item nvptx_runtime_alias_ptx
+The nvptx runtime environment supports the PTX ISA directive
+@code{.alias}.
+@end table
+
 @subsubsection PowerPC-specific attributes
 
 @table @code
@@ -3260,6 +3271,9 @@ compliance mode.
 @code{mips16} function attributes.
 Only MIPS targets support this feature, and only then in certain modes.
 
+@item nvptx_alias_ptx
+Enable using the PTX ISA directive @code{.alias} on nvptx targets.
+
 @item stack_size
 @anchor{stack_size_ao}
 Add the flags needed to define macro STACK_SIZE and set it to the stack size
diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp
index 95b61326dcf4..3430e6d3a8c1 100644
--- a/gcc/testsuite/ChangeLog.omp
+++ b/gcc/testsuite/ChangeLog.omp
@@ -1,5 +1,28 @@
 2024-12-18  Thomas Schwinge  <tschwi...@baylibre.com>
 
+       Backported from trunk:
+       2024-09-05  Thomas Schwinge  <tschwi...@baylibre.com>
+
+       * gcc.target/nvptx/nvptx.exp
+       (check_effective_target_default_ptx_isa_version_at_least)
+       (check_effective_target_default_ptx_isa_version_at_least_6_0)
+       (check_effective_target_runtime_ptx_isa_version_at_least)
+       (check_effective_target_runtime_ptx_alias)
+       (add_options_for_ptx_alias): Move...
+       * lib/target-supports.exp
+       (check_nvptx_default_ptx_isa_version_at_least)
+       (check_effective_target_nvptx_default_ptx_isa_version_at_least_6_0)
+       (check_nvptx_runtime_ptx_isa_version_at_least)
+       (check_effective_target_nvptx_runtime_alias_ptx)
+       (add_options_for_nvptx_alias_ptx): ... here.
+       * gcc.target/nvptx/alias-1.c: Adjust.
+       * gcc.target/nvptx/alias-2.c: Likewise.
+       * gcc.target/nvptx/alias-3.c: Likewise.
+       * gcc.target/nvptx/alias-4.c: Likewise.
+       * gcc.target/nvptx/alias-to-alias-1.c: Likewise.
+       * gcc.target/nvptx/alias-weak-1.c: Likewise.
+       * gcc.target/nvptx/uniform-simt-5.c: Likewise.
+
        Backported from trunk:
        2024-09-04  Thomas Schwinge  <tschwi...@baylibre.com>
 
diff --git a/gcc/testsuite/gcc.target/nvptx/alias-1.c 
b/gcc/testsuite/gcc.target/nvptx/alias-1.c
index d251eee6e423..1c0642b14d91 100644
--- a/gcc/testsuite/gcc.target/nvptx/alias-1.c
+++ b/gcc/testsuite/gcc.target/nvptx/alias-1.c
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 int v;
 
diff --git a/gcc/testsuite/gcc.target/nvptx/alias-2.c 
b/gcc/testsuite/gcc.target/nvptx/alias-2.c
index 96cb7e2c1ef9..5c4b9c787e15 100644
--- a/gcc/testsuite/gcc.target/nvptx/alias-2.c
+++ b/gcc/testsuite/gcc.target/nvptx/alias-2.c
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps -O2" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 #include "alias-1.c"
 
diff --git a/gcc/testsuite/gcc.target/nvptx/alias-3.c 
b/gcc/testsuite/gcc.target/nvptx/alias-3.c
index 39649e30b91d..b55ff26269e1 100644
--- a/gcc/testsuite/gcc.target/nvptx/alias-3.c
+++ b/gcc/testsuite/gcc.target/nvptx/alias-3.c
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 /* Copy of alias-1.c, with static __f and f.  */
 
diff --git a/gcc/testsuite/gcc.target/nvptx/alias-4.c 
b/gcc/testsuite/gcc.target/nvptx/alias-4.c
index 28163c0faa0c..b36fa420aa7e 100644
--- a/gcc/testsuite/gcc.target/nvptx/alias-4.c
+++ b/gcc/testsuite/gcc.target/nvptx/alias-4.c
@@ -1,7 +1,7 @@
 /* { dg-do link } */
-/* { dg-do run { target runtime_ptx_alias } } */
+/* { dg-do run { target nvptx_runtime_alias_ptx } } */
 /* { dg-options "-save-temps -O2" } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 #include "alias-3.c"
 
diff --git a/gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c 
b/gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c
index 3db79d1fc0bd..273baca89c4a 100644
--- a/gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c
+++ b/gcc/testsuite/gcc.target/nvptx/alias-to-alias-1.c
@@ -1,7 +1,7 @@
 /* Alias to alias; 'libgomp.c-c++-common/pr96390.c'.  */
 
 /* { dg-do compile } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 int v;
 
diff --git a/gcc/testsuite/gcc.target/nvptx/alias-weak-1.c 
b/gcc/testsuite/gcc.target/nvptx/alias-weak-1.c
index 37d9543fc7f8..6e4267c404d3 100644
--- a/gcc/testsuite/gcc.target/nvptx/alias-weak-1.c
+++ b/gcc/testsuite/gcc.target/nvptx/alias-weak-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-add-options ptx_alias } */
+/* { dg-add-options nvptx_alias_ptx } */
 
 void __f ()
 {
diff --git a/gcc/testsuite/gcc.target/nvptx/nvptx.exp 
b/gcc/testsuite/gcc.target/nvptx/nvptx.exp
index 3151381f51ad..d526b5822f91 100644
--- a/gcc/testsuite/gcc.target/nvptx/nvptx.exp
+++ b/gcc/testsuite/gcc.target/nvptx/nvptx.exp
@@ -25,72 +25,6 @@ if ![istarget nvptx*-*-*] then {
 # Load support procs.
 load_lib gcc-dg.exp
 
-# Return 1 if code by default compiles for at least PTX ISA version
-# major.minor.
-proc check_effective_target_default_ptx_isa_version_at_least { major minor } {
-    set name default_ptx_isa_version_at_least_${major}_${minor}
-
-    set supported_p \
-       [concat \
-            "((__PTX_ISA_VERSION_MAJOR__ == $major" \
-            "  && __PTX_ISA_VERSION_MINOR__ >= $minor)" \
-            " || (__PTX_ISA_VERSION_MAJOR__ > $major))"]
-
-    set src \
-       [list \
-            "#if $supported_p" \
-            "#else" \
-            "#error unsupported" \
-            "#endif"]
-    set src [join $src "\n"]
-    
-    set res [check_no_compiler_messages $name assembly $src ""]
-
-    return $res
-}
-
-# Return 1 if code by default compiles for at least PTX ISA version 6.0.
-proc check_effective_target_default_ptx_isa_version_at_least_6_0 { } {
-    return [check_effective_target_default_ptx_isa_version_at_least 6 0]
-}
-
-# Return 1 if code with PTX ISA version major.minor or higher can be run.
-proc check_effective_target_runtime_ptx_isa_version_at_least { major minor } {
-    set name runtime_ptx_isa_version_${major}_${minor}
-
-    set default \
-       [check_effective_target_default_ptx_isa_version_at_least \
-            ${major} ${minor}]
-
-    if { $default } {
-       set flag ""
-    } else {
-       set flag "-mptx=$major.$minor"
-    }
-
-    set res [check_runtime $name {
-       int main (void) { return 0; }
-    } $flag]
-
-    return $res
-}
-
-# Return 1 if runtime environment support the PTX ISA directive .alias.
-proc check_effective_target_runtime_ptx_alias { } {
-    return [check_effective_target_runtime_ptx_isa_version_at_least 6 3]
-}
-
-# Add options to enable using PTX ISA directive .alias.
-proc add_options_for_ptx_alias { flags } {
-    append flags " -malias"
-
-    if { ![check_effective_target_default_ptx_isa_version_at_least 6 3] } {
-       append flags " -mptx=6.3"
-    }
-
-    return $flags
-}
-
 # If a testcase doesn't have special options, use these.
 global DEFAULT_CFLAGS
 if ![info exists DEFAULT_CFLAGS] then {
diff --git a/gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c 
b/gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c
index cd6ea82d293a..12b9f786c0f7 100644
--- a/gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c
+++ b/gcc/testsuite/gcc.target/nvptx/uniform-simt-5.c
@@ -22,7 +22,7 @@ main()
 
 /* Per 'omp_simt_exit':
      - 'nvptx_warpsync'
-       { dg-final { scan-assembler-times {bar\.warp\.sync\t0xffffffff;} 1 { 
target default_ptx_isa_version_at_least_6_0 } } }
+       { dg-final { scan-assembler-times {bar\.warp\.sync\t0xffffffff;} 1 { 
target nvptx_default_ptx_isa_version_at_least_6_0 } } }
      - 'nvptx_uniform_warp_check'
-       { dg-final { scan-assembler-times {vote\.all\.pred\t%r_sync, 1;} 1 { 
target { ! default_ptx_isa_version_at_least_6_0 } } } }
+       { dg-final { scan-assembler-times {vote\.all\.pred\t%r_sync, 1;} 1 { 
target { ! nvptx_default_ptx_isa_version_at_least_6_0 } } } }
 */
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index f6751a07a17b..f52aad73131e 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -13561,3 +13561,75 @@ proc check_effective_target_heap_trampoline {} {
     }
     return 0
 }
+
+# Return 1 if nvptx code by default compiles for at least PTX ISA version
+# major.minor.
+
+proc check_nvptx_default_ptx_isa_version_at_least { major minor } {
+    set name nvptx_default_ptx_isa_version_at_least_${major}_${minor}
+
+    set supported_p \
+       [concat \
+            "((__PTX_ISA_VERSION_MAJOR__ == $major" \
+            "  && __PTX_ISA_VERSION_MINOR__ >= $minor)" \
+            " || (__PTX_ISA_VERSION_MAJOR__ > $major))"]
+
+    set src \
+       [list \
+            "#if $supported_p" \
+            "#else" \
+            "#error unsupported" \
+            "#endif"]
+    set src [join $src "\n"]
+    
+    set res [check_no_compiler_messages $name assembly $src ""]
+
+    return $res
+}
+
+# Return 1 if nvptx code by default compiles for at least PTX ISA version 6.0.
+
+proc check_effective_target_nvptx_default_ptx_isa_version_at_least_6_0 { } {
+    return [check_nvptx_default_ptx_isa_version_at_least 6 0]
+}
+
+# Return 1 if nvptx code with PTX ISA version major.minor or higher can be run.
+
+proc check_nvptx_runtime_ptx_isa_version_at_least { major minor } {
+    set name nvptx_runtime_ptx_isa_version_${major}_${minor}
+
+    set default \
+       [check_nvptx_default_ptx_isa_version_at_least \
+            ${major} ${minor}]
+
+    if { $default } {
+       set flag ""
+    } else {
+       set flag "-mptx=$major.$minor"
+    }
+
+    set res [check_runtime $name {
+       int main (void) { return 0; }
+    } $flag]
+
+    return $res
+}
+
+# Return 1 if the nvptx runtime environment supports the PTX ISA directive
+# '.alias'.
+
+proc check_effective_target_nvptx_runtime_alias_ptx { } {
+    return [check_nvptx_runtime_ptx_isa_version_at_least 6 3]
+}
+
+# Add options to enable nvptx using the PTX ISA directive '.alias'.
+
+proc add_options_for_nvptx_alias_ptx { flags } {
+    append flags " -malias"
+
+    if { ![check_nvptx_default_ptx_isa_version_at_least 6 3] } {
+       append flags " -mptx=6.3"
+    }
+
+    return $flags
+}

Reply via email to