public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Thomas Schwinge <thomas@codesourcery.com>
To: Tom de Vries <Tom_deVries@mentor.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [nvptx, PR 81662, committed] Error out on nvptx for fpatchable-function-entry
Date: Thu, 10 Aug 2017 13:13:00 -0000	[thread overview]
Message-ID: <87mv773erl.fsf@euler.schwinge.homeip.net> (raw)
In-Reply-To: <6ad5514b-cb0c-98f0-50ed-bacfa19a39a3@mentor.com>

Hi Tom!

On Thu, 3 Aug 2017 13:23:16 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
> [ was: Re: [testsuite, PR81662, committed] Skip 
> fpatchable-function-entry tests for nvptx ]
> 
> On 08/03/2017 09:17 AM, Tom de Vries wrote:
> > fpatchable-function-entry requires nop, which nvptx does not have.

Generally, should we perhaps use something like the following to at least
make it obvious in the generated PTX code that the compiler tried to
generate a "nop"?

--- gcc/config/nvptx/nvptx.md
+++ gcc/config/nvptx/nvptx.md
@@ -989,10 +989,11 @@
 
 ;; Miscellaneous
 
+;; PTX doesn't define a real "nop" instruction.
 (define_insn "nop"
   [(const_int 0)]
   ""
-  "")
+  "/* nop */")
 
 (define_insn "return"
   [(return)]

I have not tested this, have not verified whether we need to set the
"predicable" attribute to "false" here (existing problem maybe?), have
not thought about any other implications.  But given that "comments in
PTX are treated as whitespace", that should be fine?


> > I've disabled the corresponding test for nvptx.

Conceptually ACK.  Not useful on PTX.


> This patch errors out on nvptx for fpatchable-function-entry.

> --- a/gcc/config/nvptx/nvptx.c
> +++ b/gcc/config/nvptx/nvptx.c
> @@ -180,6 +180,10 @@ nvptx_option_override (void)
>    if (!global_options_set.x_flag_no_common)
>      flag_no_common = 1;
>  
> +  /* The patch area requires nops, which we don't have.  */
> +  if (function_entry_patch_area_size > 0)
> +    sorry ("not generating patch area, nops not supported");
> +
>    /* Assumes that it will see only hard registers.  */
>    flag_var_tracking = 0;

I noticed that this doesn't trigger if using "-fpatchable-function-entry"
during offloading compilation (but it does trigger for
"-foffload=-fpatchable-function-entry").  Is this a) intentional or by
accident, and/or b) desired?


> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
> @@ -0,0 +1,15 @@
> +/* { dg-do compile } */
> +/* { dg-options "-O2 -fpatchable-function-entry=3,1" } */
> +
> +extern int a;
> +
> +int f3 (void);
> +
> +int
> +__attribute__((noinline))
> +f3 (void)
> +{
> +  return 5*a;
> +}
> +
> +/* { dg-excess-errors "sorry, unimplemented: not generating patch area, nops not supported" } */

Given that the first argument of "dg-excess-errors" is just a comment,
shouldn't we instead explicitly scan for this specific diagnostic, while
also still watching for other excess errors?

--- gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
+++ gcc/testsuite/gcc.target/nvptx/patchable_function_entry-default.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fpatchable-function-entry=3,1" } */
+/* { dg-message "sorry, unimplemented: not generating patch area, nops not supported" "" { target *-*-* } 0 } */
 
 extern int a;
 
@@ -11,5 +12,3 @@ f3 (void)
 {
   return 5*a;
 }
-
-/* { dg-excess-errors "sorry, unimplemented: not generating patch area, nops not supported" } */


Grüße
 Thomas

      reply	other threads:[~2017-08-10 10:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-03  7:17 [testsuite, PR81662, committed] Skip fpatchable-function-entry tests for nvptx Tom de Vries
2017-08-03 11:23 ` [nvptx, PR 81662, committed] Error out on nvptx for fpatchable-function-entry Tom de Vries
2017-08-10 13:13   ` Thomas Schwinge [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mv773erl.fsf@euler.schwinge.homeip.net \
    --to=thomas@codesourcery.com \
    --cc=Tom_deVries@mentor.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).