diff mbox series

[committed,nvptx] Use '%' as register prefix

Message ID 20220322134250.GA32495@delia.home
State New
Headers show
Series [committed,nvptx] Use '%' as register prefix | expand

Commit Message

Tom de Vries March 22, 2022, 1:42 p.m. UTC
Hi,

The percentage sign as first character of a ptx identifier can be used to
avoid name conflicts, e.g., between user-defined variable names and
compiler-generated names.

The insn nvptx_uniform_warp_check contains register names without '%' prefix,
which potentially could lead to name conflicts with user-defined variable
names.

Fix this by adding a '%' prefix, more specifically a '%r_' prefix to avoid a
name conflict with ptx special registers.

Tested on x86_64 with nvptx accelerator.

Committed to trunk.

Thanks,
- Tom

[nvptx] Use '%' as register prefix

gcc/ChangeLog:

2022-03-20  Tom de Vries  <tdevries@suse.de>

	PR target/104925
	* config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
	Use % as register prefix.

---
 gcc/config/nvptx/nvptx.md | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/gcc/config/nvptx/nvptx.md b/gcc/config/nvptx/nvptx.md
index 5550ce25513..8ed685027b5 100644
--- a/gcc/config/nvptx/nvptx.md
+++ b/gcc/config/nvptx/nvptx.md
@@ -2280,13 +2280,14 @@  (define_insn "nvptx_uniform_warp_check"
   {
     const char *insns[] = {
       "{",
-      "\\t"	      ".reg.b32"	"\\t" "act;",
-      "%.\\t"	      "vote.ballot.b32" "\\t" "act,1;",
-      "\\t"	      ".reg.pred"	"\\t" "do_abort;",
-      "\\t"	      "mov.pred"	"\\t" "do_abort,0;",
-      "%.\\t"	      "setp.ne.b32"	"\\t" "do_abort,act,0xffffffff;",
-      "@ do_abort\\t" "trap;",
-      "@ do_abort\\t" "exit;",
+      "\\t"		  ".reg.b32"	    "\\t" "%%r_act;",
+      "%.\\t"		  "vote.ballot.b32" "\\t" "%%r_act,1;",
+      "\\t"		  ".reg.pred"	    "\\t" "%%r_do_abort;",
+      "\\t"		  "mov.pred"	    "\\t" "%%r_do_abort,0;",
+      "%.\\t"		  "setp.ne.b32"	    "\\t" "%%r_do_abort,%%r_act,"
+						  "0xffffffff;",
+      "@ %%r_do_abort\\t" "trap;",
+      "@ %%r_do_abort\\t" "exit;",
       "}",
       NULL
     };