[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

--- Comment #13 from Jakub Jelinek  ---
Author: jakub
Date: Wed Dec 18 23:27:28 2019
New Revision: 279552

URL: https://gcc.gnu.org/viewcvs?rev=279552&root=gcc&view=rev
Log:
PR middle-end/86416
* testsuite/libgomp.c/pr86416-1.c (main): Use L suffixes rather than
q or none.
* testsuite/libgomp.c/pr86416-2.c (main): Use Q suffixes rather than
L or none.

Modified:
trunk/libgomp/ChangeLog
trunk/libgomp/testsuite/libgomp.c/pr86416-1.c
trunk/libgomp/testsuite/libgomp.c/pr86416-2.c

[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-18 Thread tschwinge at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

--- Comment #12 from Thomas Schwinge  ---
(In reply to Jakub Jelinek from comment #11)
> because e.g. for x86_64-intelmicemul-linux-gnu offloading the error will not
> be emitted.  If nvptx or gcn offloading is configured, it will be, for hsa
> offloading no idea.

Uh, more explicitly: for x86_64-intelmicemul-linux-gnu offloading the error
will not be emitted *unless* nvptx or gcn offloading is also configured. 
That's because for OpenMP libgomp testing we don't cycle through the different
offload targets individually (via '-foffload', as done for OpenACC libgomp
testing), but compile once, for all offload targets.

Each approach has its pros and cons; I'm not yet decided on which is best.

(What I am decided on, though, is that it's not ideal that by default OpenMP
offloading testing is only testing execution with one offload target, the first
configured/available.  Again there are different solutions possible to this
issue, again each with its pros and cons, and this is, of course a separate
discussion.)

[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

--- Comment #11 from Jakub Jelinek  ---
Indeed, the q and L suffixes are swapped, I believe Tobias meant:
--- libgomp/testsuite/libgomp.c/pr86416-1.c.jj  2019-12-18 21:25:02.856131826
+0100
+++ libgomp/testsuite/libgomp.c/pr86416-1.c 2019-12-18 21:28:06.275349386
+0100
@@ -16,7 +16,7 @@ long double foo (long double x)

 int main()
 {
-  long double v = foo (10.0q) - 20.0q;
-  if (v > 1.0e-5 || v < -1.0e-5) abort();
+  long double v = foo (10.0L) - 20.0L;
+  if (v > 1.0e-5L || v < -1.0e-5L) abort();
   return 0;
 }
--- libgomp/testsuite/libgomp.c/pr86416-2.c.jj  2019-12-18 21:25:02.855131842
+0100
+++ libgomp/testsuite/libgomp.c/pr86416-2.c 2019-12-18 21:28:41.708811864
+0100
@@ -16,7 +16,7 @@ __float128 foo(__float128 y)

 int main()
 {
-  __float128 v = foo (5.0L) - 20.0L;
-  if (v > 1.0e-5 || v < -1.0e-5) abort();
+  __float128 v = foo (5.0Q) - 20.0Q;
+  if (v > 1.0e-5Q || v < -1.0e-5Q) abort();
   return 0;
 }

and will test that momentarily.  That said, I think that isn't enough, because
e.g. for x86_64-intelmicemul-linux-gnu offloading the error will not be
emitted.  If nvptx or gcn offloading is configured, it will be, for hsa
offloading no idea.

[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-18 Thread tschwinge at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

Thomas Schwinge  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||tschwinge at gcc dot gnu.org
 Resolution|FIXED   |---

--- Comment #10 from Thomas Schwinge  ---
Thanks for your work on this.


(In reply to Tobias Burnus from comment #8)
> New Revision: 279528

> Added:
> trunk/libgomp/testsuite/libgomp.c/pr86416-1.c
> trunk/libgomp/testsuite/libgomp.c/pr86416-2.c

On powerpc64le-unknown-linux-gnu without offloading, I see both these FAIL,
because: "error: __float128 and long double cannot be used in the same
expression".  ;-O

[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-18 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

Tobias Burnus  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Tobias Burnus  ---
First issue was:
   lto1: fatal error: unsupported mode TF

Namely, a not that readable error message if a mode is not supported. (Here:
'complex(kind=16)' which is a float128-type complex number, which is only
supported on the host but not on the device (nvptx/Nvidia).)

[Side remark: The user intended complex*16 = complex(kind=8) = double-precision
complex.]

This now gives a message such as:

lto1: fatal error: nvptx-none - 128-bit-precision floating-point numbers
unsupported (mode 'TF')

Which is better readable. → FIXED by the commit r279528 of comment 8.


The second issue was:
  CHARACTER default mapping didn't match the spec for 'scalar'

Well, OpenMP's terminology states that Fortran CHARACTER aren't scalars. Hence:
→ INVALID

As all issues are resolved, I close the bug. – Thanks for implicit suggestion
to improve the error message!

[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-18 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

--- Comment #8 from Tobias Burnus  ---
Author: burnus
Date: Wed Dec 18 16:51:08 2019
New Revision: 279528

URL: https://gcc.gnu.org/viewcvs?rev=279528&root=gcc&view=rev
Log:
PR 86416 – improve lto1 diagnostic if a mode does not exist

PR middle-end/86416
*  Makefile.in (CFLAGS-lto-streamer-in.o): Pass target_noncanonical on.
* lto-streamer-in.c (lto_input_mode_table): Improve unsupported-mode
diagnostic.

PR middle-end/86416
* testsuite/libgomp.c/pr86416-1.c: New.
* testsuite/libgomp.c/pr86416-2.c: New.


Added:
trunk/libgomp/testsuite/libgomp.c/pr86416-1.c
trunk/libgomp/testsuite/libgomp.c/pr86416-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in
trunk/gcc/lto-streamer-in.c
trunk/libgomp/ChangeLog

[Bug middle-end/86416] [OpenMP] Offloading - better lto1 error message if mode not supported on offloading target

2019-12-13 Thread burnus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86416

Tobias Burnus  changed:

   What|Removed |Added

   Keywords||lto
  Component|fortran |middle-end
Summary|[OMPVV SOLLVE] Defaultmap   |[OpenMP] Offloading -
   |issues on OpenMP 4.5|better lto1 error message
   ||if mode not supported on
   ||offloading target

--- Comment #7 from Tobias Burnus  ---
Let's change the PR's subject to something more explicit for the first issue.
(Especially as the second one is INVALID.)

I have also posted an initial patch:
https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00970.html