diff mbox

[PR,target/67822] OpenMP offloading to nvptx fails (was: [gomp4 2/8] nvptx mkoffload: do not restrict to OpenACC)

Message ID 87pp0xqdbp.fsf@kepler.schwinge.homeip.net
State New
Headers show

Commit Message

Thomas Schwinge Oct. 2, 2015, 7:29 p.m. UTC
Hi!

On Thu, 24 Sep 2015 09:25:54 +0200, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Sep 23, 2015 at 08:22:16PM +0300, Alexander Monakov wrote:
> > This patch allows to meaningfully invoke mkoffload with -fopenmp.  The check
> > for -fopenacc flag is specific to gomp4 branch: trunk does not have it.
> > 
> > 	* config/nvptx/mkoffload.c (main): Do not check for -fopenacc.
> 
> LGTM.

No; see <https://gcc.gnu.org/PR67822>.  I installed the following on
trunk in r228414 (as obvious), "inverting" the -fopenacc check that we
currently have on gomp-4_0-branch to instead skip generating an
offloading image if -fopenmp is specified.  You're welcome to work on the
PR, of course.

commit cba229716b3a369e96c71189d98a46ca3ada2717
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Oct 2 19:27:30 2015 +0000

    [PR target/67822] OpenMP offloading to nvptx fails
    
    	gcc/
    	PR target/67822
    	* config/nvptx/mkoffload.c (main): Scan the argument vector for
    	-fopenmp, and skip generating an offloading image if specified.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228414 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog                | 6 ++++++
 gcc/config/nvptx/mkoffload.c | 7 +++++--
 2 files changed, 11 insertions(+), 2 deletions(-)



Grüße,
 Thomas
diff mbox

Patch

diff --git gcc/ChangeLog gcc/ChangeLog
index 3f7561a..1317a2d 100644
--- gcc/ChangeLog
+++ gcc/ChangeLog
@@ -1,3 +1,9 @@ 
+2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
+
+	PR target/67822
+	* config/nvptx/mkoffload.c (main): Scan the argument vector for
+	-fopenmp, and skip generating an offloading image if specified.
+
 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
 
 	* system.h (ROUND_UP): New macro definition.
diff --git gcc/config/nvptx/mkoffload.c gcc/config/nvptx/mkoffload.c
index 926c82b..69eb4ea 100644
--- gcc/config/nvptx/mkoffload.c
+++ gcc/config/nvptx/mkoffload.c
@@ -1030,6 +1030,7 @@  main (int argc, char **argv)
   expandargv (&argc, &argv);
 
   /* Scan the argument vector.  */
+  bool fopenmp = false;
   for (int i = 1; i < argc; i++)
     {
 #define STR "-foffload-abi="
@@ -1044,6 +1045,8 @@  main (int argc, char **argv)
 			 "unrecognizable argument of option " STR);
 	}
 #undef STR
+      else if (strcmp (argv[i], "-fopenmp") == 0)
+	fopenmp = true;
       else if (strcmp (argv[i], "-v") == 0)
 	verbose = true;
     }
@@ -1082,8 +1085,8 @@  main (int argc, char **argv)
     fatal_error (input_location, "cannot open '%s'", ptx_cfile_name);
 
   /* PR libgomp/65099: Currently, we only support offloading in 64-bit
-     configurations.  */
-  if (offload_abi == OFFLOAD_ABI_LP64)
+     configurations.  PR target/67822: OpenMP offloading to nvptx fails.  */
+  if (offload_abi == OFFLOAD_ABI_LP64 && !fopenmp)
     {
       ptx_name = make_temp_file (".mkoffload");
       obstack_ptr_grow (&argv_obstack, "-o");