[Bug ipa/92809] [10 regression] error: calls_comdat_local is set outside of a comdat group

2019-12-05 Thread frederik at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92809

Frederik Harwath  changed:

   What|Removed |Added

 CC||frederik at gcc dot gnu.org

--- Comment #2 from Frederik Harwath  ---
We see the same error with the same backtrace when compiling
g++.dg/torture/pr59226.C for amdgcn.

[Bug fortran/92793] Fortran Location Data for Diagnostic lacks the column number – when passing on to ME

2019-12-10 Thread frederik at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92793

--- Comment #4 from Frederik Harwath  ---
Author: frederik
Date: Tue Dec 10 16:12:58 2019
New Revision: 279169

URL: https://gcc.gnu.org/viewcvs?rev=279169&root=gcc&view=rev
Log:
Add tests to verify OpenACC clause locations

Check that the column information for OpenACC clauses is communicated correctly
to the middle-end, in particular by the Fortran front-end (cf. PR 92793).

2019-12-10  Frederik Harwath  

gcc/testsuite/
* c-c++-common/goacc/clause-locations.c: New test.
* gfortran.dg/goacc/clause-locations.f90: New test.


Added:
trunk/gcc/testsuite/c-c++-common/goacc/clause-locations.c
trunk/gcc/testsuite/gfortran.dg/goacc/clause-locations.f90
Modified:
trunk/gcc/testsuite/ChangeLog

[Bug other/92901] new test case c-c++-common/goacc/clause-locations.c in r279169 fails

2019-12-11 Thread frederik at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92901

--- Comment #1 from Frederik Harwath  ---
Author: frederik
Date: Wed Dec 11 08:26:18 2019
New Revision: 279215

URL: https://gcc.gnu.org/viewcvs?rev=279215&root=gcc&view=rev
Log:
Fix PR92901: Change test expectation for C++ in OpenACC test clause-locations.c 

The columns of the clause locations that are reported for C and C++ are
different and hence we need separate test expectations for both languages.

2019-12-11  Frederik Harwath  

PR other/92901
/gcc/testsuite/
* c-c++-common/clause-locations.c: Adjust test expectation for C++.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/c-c++-common/goacc/clause-locations.c

[Bug other/92901] new test case c-c++-common/goacc/clause-locations.c in r279169 fails

2019-12-11 Thread frederik at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92901

--- Comment #2 from Frederik Harwath  ---
Created attachment 47469
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47469&action=edit
Committed fix

[Bug other/92901] new test case c-c++-common/goacc/clause-locations.c in r279169 fails

2019-12-11 Thread frederik at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92901

Frederik Harwath  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Frederik Harwath  ---
See attached patch.

[Bug libgomp/93481] Do not fail with nowait clause

2020-02-13 Thread frederik at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93481

Frederik Harwath  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from Frederik Harwath  ---
Fixed for GCC 10.

See
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=001ab12e620c6f117b2e93c77d188bd62fe7ba03

author  Frederik Harwath 
Thu, 13 Feb 2020 06:30:16 + (07:30 +0100)
commit  001ab12e620c6f117b2e93c77d188bd62fe7ba03

openmp: ignore nowait if async execution is unsupported [PR93481]

An OpenMP "nowait" clause on a target construct currently leads to
a call to GOMP_OFFLOAD_async_run in the plugin that is used for
offloading at execution time. The nvptx plugin contains only a stub
of this function that always produces a fatal error if called.

This commit changes the "nowait" implementation to ignore the clause
if the executing device's plugin does not implement GOMP_OFFLOAD_async_run.
The stub in the nvptx plugin is removed which effectively means that
programs containing "nowait" can now be executed with nvptx offloading
as if the clause had not been used.
This behavior is consistent with the OpenMP specification which says that
"[...] execution of the target task *may* be deferred" (emphasis added),
cf. OpenMP 5.0, page 172.

libgomp/

* plugin/plugin-nvptx.c: Remove GOMP_OFFLOAD_async_run stub.
* target.c (gomp_load_plugin_for_device): Make "async_run" loading
optional.
(gomp_target_task_fn): Assert "devicep->async_run_func".
(clear_unsupported_flags): New function to remove unsupported flags
(right now only GOMP_TARGET_FLAG_NOWAIT) that can be be ignored.
(GOMP_target_ext): Apply clear_unsupported_flags to flags.
* testsuite/libgomp.c/target-33.c:
Remove xfail for offload_target_nvptx.
* testsuite/libgomp.c/target-34.c: Likewise.

[Bug middle-end/109552] New: ICE with "cancel" directive in "taskloop" construct

2023-04-19 Thread frederik at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109552

Bug ID: 109552
   Summary: ICE with "cancel" directive in "taskloop" construct
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: frederik at gcc dot gnu.org
  Target Milestone: ---

Created attachment 54882
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54882&action=edit
C version of the test

The following Fortran code produces an ICE in the middle-end when I compile it
as a libgomp test (i.e. with -fopenmp; same error at different optimization
levels):

program test
  integer :: a
  integer :: i

  !$omp parallel
  !$omp taskloop
   do i = 1,10
 !$omp cancel taskgroup if (a .eq. 1)
 call abort ()
  end do
  !$omp end taskloop
  !$omp end parallel
end program

Error:

FAIL: libgomp.fortran/cancel-taskloop.f90   -O  (test for excess errors)
Excess errors:
during GIMPLE pass: ompexp
../../../../libgomp/testsuite/libgomp.fortran/cancel-taskloop.f90:6:16:
internal compiler error: in verify_sese, at tree-cfg.cc:7654
0x7c0878 verify_sese(basic_block_def*, basic_block_def*, vec*)
../../gcc/tree-cfg.cc:7654
0x14d4958 move_sese_region_to_fn(function*, basic_block_def*, basic_block_def*,
tree_node*)
../../gcc/tree-cfg.cc:7770
0x2606968 expand_omp_taskreg
../../gcc/omp-expand.cc:1444
0x260ca3f expand_omp_synch
../../gcc/omp-expand.cc:8659
0x260ca3f expand_omp
../../gcc/omp-expand.cc:10616
0x260c77c expand_omp
../../gcc/omp-expand.cc:10565
0x260c77c expand_omp
../../gcc/omp-expand.cc:10565
0x260e9fa execute_expand_omp
../../gcc/omp-expand.cc:10819

A canonical conversion of the test to C/C++ leads to the same error from
gcc/g++.

I am not sure if the code is valid according to the OpenMP spec, but the ICE is
certainly wrong.

The GCC build has been configured with "--enable-languages=fortran,c,c++
--enable-checking=all --disable-multilib --disable-bootstrap" and the version
is
"gcc version 14.0.0 20230419 (experimental) (GCC)".

[Bug libgomp/109620] New: [OpenMP][Offloading] OMP_CANCELLATION ICV not mapped to device

2023-04-25 Thread frederik at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109620

Bug ID: 109620
   Summary: [OpenMP][Offloading] OMP_CANCELLATION ICV not mapped
to device
   Product: gcc
   Version: 13.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgomp
  Assignee: unassigned at gcc dot gnu.org
  Reporter: frederik at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
  Target Milestone: ---

The value of the OMP_CANCELLATION ICV does not get copied to offloading
devices.
I have tested it by running the following test code both with nvptx and amgdcn
offloading as a part of the libgomp testsuite:   

/* { dg-set-target-env-var OMP_CANCELLATION "true" } */

#include 

int
main ()
{

  __builtin_printf("OMP_CANCELLATION on host: %d\n",
 omp_get_cancellation ());
#pragma omp target
{
  __builtin_printf("OMP_CANCELLATION on device: %d\n",
   omp_get_cancellation ());
}

  return 0;
}

In both cases, the output was:

OMP_CANCELLATION on host: 1
OMP_CANCELLATION on device: 0

Does libgomp copy global ICVs to the device environment at all?
I did not find any tests that use cancellation in "target" regions. I think
there is no way for a user to enable it if the ICV is not forwarded.
But would it be supported in principle?