[Patch] Fortran: Fix reallocation on assignment for kind=4 strings [PR107508]

2022-11-05 Thread Tobias Burnus
Prior to the attached patch, there is a problem with realloc on assignment with kind=4 characters as the string length was compared with the byte size, which was always true. I initially thought, looking at the code, that scalars have the same issues, but they don't; hence, I ended up with a

[Patch] OpenMP/Fortran: 'target update' with DT components (was: [Patch] OpenMP/Fortran: 'target update' with strides + DT components)

2022-11-03 Thread Tobias Burnus
On 03.11.22 13:44, Jakub Jelinek wrote: [...] Otherwise LGTM, assuming it actually works correctly. I don't remember support for non-contiguous copying to/from devices being actually added, [...] And I think it is not ok to copy bytes that aren't requested to be copied. I have now removed

[Patch] Fortran/OpenMP: Fix DT struct-component with 'alloc' and array descr

2022-11-02 Thread Tobias Burnus
This fixes some an issue with 'alloc:' found when working on the patch '[Patch] OpenMP/Fortran: 'target update' with strides + DT components' https://gcc.gnu.org/pipermail/gcc-patches/2022-October/604687.html (BTW: This one is still pending review.) OK for mainline? * * * I think the patch is

[Patch] OpenMP/Fortran: 'target update' with strides + DT components

2022-10-31 Thread Tobias Burnus
I recently saw that gfortran does not support derived type components with 'target update', an OpenMP 5.0 feature. When adding it, I also found out that strides where not handled. There is probably some room of improvement about what to copy and what not, but copying too much should be fine.

Re: [PATCH] OpenMP: Duplicate checking for map clauses in Fortran (PR107214)

2022-10-26 Thread Tobias Burnus
Hi Julian, I had a first quick lock at this patch, I should have a closer look later. However, I stumbled over the following: On 20.10.22 18:14, Julian Brown wrote: typedef struct gfc_symbol { ... struct gfc_symbol *old_symbol; unsigned mark:1, comp_mark:1, data_mark:1, dev_mark:1,

Re: [Patch][v5] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-10-24 Thread Tobias Burnus
Hi Tobias! On 24.10.22 21:11, Thomas Schwinge wrote: On 2022-10-24T21:05:46+0200, I wrote: On 2022-10-24T16:07:25+0200, Jakub Jelinek via Gcc-patches wrote: On Wed, Oct 12, 2022 at 10:55:26AM +0200, Tobias Burnus wrote: libgomp/nvptx: Prepare for reverse-offload callback handling Well

*ping* Re: [Patch] OpenMP: Fix reverse offload GOMP_TARGET_REV IFN corner cases [PR107236]

2022-10-24 Thread Tobias Burnus
cc.gnu.org/pipermail/gcc-patches/2022-September/601959.html (I think 'target nowait' permits what he thinks is the better way for GPUs.) Tobias On 18.10.22 21:27, Tobias Burnus wrote: Found when playing around with reverse offload once I used 'omp target parallel'. The other issue showed up wh

[OG12] omp-oacc-kernels-decompose.cc: fix -fcompare-debug with GIMPLE_DEBUG

2022-10-20 Thread Tobias Burnus
; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit 807b755357c4eb03260d229f4a851009fe058e51 Author: Tobias Burnus Date: Thu Oct 20 19:20:36 2022 +0200 omp-oacc-kernels-decompose.cc: fix -fcompare-debug with GIMPLE_DEBUG GIMPLE_DEBUG were put in a paral

[OG12] libgomp.c-c++-common/requires-4.c: dg-xfail-run-if for USM with -foffload-memory=

2022-10-20 Thread Tobias Burnus
955 commit 0c47ae1c9283a812f832e80e451bfa82519c21e8 Author: Tobias Burnus Date: Thu Oct 20 13:25:25 2022 +0200 libgomp.c-c++-common/requires-4.c: dg-xfail-run-if for USM with -foffload-memory= The USM implementation uses -foffload-memory=... which allocates variables in a special memory.

[OG12][committed] Fix omp-expand.cc's expand_omp_target for OpenACC

2022-10-19 Thread Tobias Burnus
; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit 0d6fc5032c7ba8a95301d0ccbc418875e73955ac Author: Tobias Burnus Date: Wed Oct 19 17:31:14 2022 +0200 Fix omp-expand.cc's expand_omp_target for OpenACC In OG12 commit

[OG12][committed] Fortran: Fix delinearization regression

2022-10-19 Thread Tobias Burnus
Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit 76b773a4a2d1daf0b83e50cd999bc38f8dd047be Author: Tobias Burnus Date:

[Patch] Fortran: Fix non_negative_strides_array_p

2022-10-19 Thread Tobias Burnus
First, I am woefully aware that there several patches pending. I hope to do a couple of reviews later today or in the next days. Otherwise, I did run into another issue in existing code which was exposed by the delinearization patch on the OG12 branch, but could potentially lead to wrong code on

[Patch] OpenMP: Fix reverse offload GOMP_TARGET_REV IFN corner cases [PR107236]

2022-10-18 Thread Tobias Burnus
Found when playing around with reverse offload once I used 'omp target parallel'. The other issue showed up when running the testsuite (which is done with -O2). In all cases, the ICE is in expand_GOMP_TARGET_REV of this IFN, which should be unreachable Note: ENABLE_OFFLOADING inside the

*ping* / Re: [Patch] libgomp: Add offload_device_gcn check, add requires-4a.c test

2022-10-17 Thread Tobias Burnus
On 12.10.22 16:05, Tobias Burnus wrote: This came up because the USM implementation with -foffload-memory={unified,pinned} as posted at https://gcc.gnu.org/pipermail/gcc-patches/2022-July/597976.html does not handle USM with static variables. This shows up for the OG12 alias devel/omp/gcc-12

*ping* / Re: [Patch][v5] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-10-17 Thread Tobias Burnus
On 12.10.22 10:55, Tobias Burnus wrote: On 11.10.22 13:12, Alexander Monakov wrote: My understanding is such trickery should not be necessary with the barrier-based approach, i.e. the sequence of PTX instructions st % plain store membar.sys st.volatile should be enough

[Patch] Fortran: Fixes for kind=4 characters strings [PR107266]

2022-10-14 Thread Tobias Burnus
Long introduction - but the patch is rather simple: Don't use kind=1 as type where kind=4 should be used. Long introduction + background, feel free to skip. This popped up for libgomp/testsuite/libgomp.fortran/struct-elem-map-1.f90 which uses kind=4 characters

[committed] gfortran.dg/c-interop/deferred-character-2.f90: Fix dg-do

2022-10-14 Thread Tobias Burnus
beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit 3760dd553eed21ac5614cf0d0841ca984b4361e2 Author: Tobias Burnus Date: Fri Oct 14 18:34:49 2022 +0200 gfortran.dg/c-interop/deferred-character-2.f90

[Patch] libgomp: Add Fortran testcases for omp_in_explicit_task

2022-10-13 Thread Tobias Burnus
Rather obvious patch as it is a straight conversion from C. OK for mainline? Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der

Re: [Patch] libgomp/gcn: Prepare for reverse-offload callback handling

2022-10-12 Thread Tobias Burnus
On 12.10.22 19:09, Andrew Stubbs wrote: On 12/10/2022 15:29, Tobias Burnus wrote: Right, sorry, the buffer is circular, but the counter is linear. It simplified reservation that way, but it does mean that there's a limit to the number of times the buffer can cycle before the counter saturates

Re: [Patch] libgomp/gcn: Prepare for reverse-offload callback handling

2022-10-12 Thread Tobias Burnus
On 29.09.22 18:24, Andrew Stubbs wrote: On 27/09/2022 14:16, Tobias Burnus wrote: Andrew did suggest a while back to piggyback on the console_output handling, avoiding another atomic access. - If this is still wanted, I like to have some guidance regarding how to actually implement

[Patch] libgomp: Add offload_device_gcn check, add requires-4a.c test

2022-10-12 Thread Tobias Burnus
This came up because the USM implementation with -foffload-memory={unified,pinned} as posted at https://gcc.gnu.org/pipermail/gcc-patches/2022-July/597976.html does not handle USM with static variables. This shows up for the OG12 alias devel/omp/gcc-12 branch as FAIL for requires-4.c. The

Re: [Patch][v5] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-10-12 Thread Tobias Burnus
__attribute__((unused))) diff --git a/libgomp/config/nvptx/libgomp-nvptx.h b/libgomp/config/nvptx/libgomp-nvptx.h new file mode 100644 index 000..5da9aae --- /dev/null +++ b/libgomp/config/nvptx/libgomp-nvptx.h @@ -0,0 +1,51 @@ +/* Copyright (C) 2022 Free Software Foundation, Inc. + Contribu

Re: [PATCH 2/5] [gfortran] Translate allocate directive (OpenMP 5.0).

2022-10-11 Thread Tobias Burnus
On 11.10.22 16:15, Jakub Jelinek wrote: I think the most common case is: integer, allocatable :: var(:) !$omp allocators allocator(my_alloc) ! must be in same scope as decl of 'var' ... ! optionally: deallocate(var) end ! of scope: block/subroutine/... - automatic deallocation So you talk

Re: [PATCH 2/5] [gfortran] Translate allocate directive (OpenMP 5.0).

2022-10-11 Thread Tobias Burnus
Hi Jakub, On 11.10.22 14:24, Jakub Jelinek wrote: There is another issue besides what I wrote in my last review, and I'm afraid I don't know what to do about it, hoping Tobias has some ideas. The problem is that without the allocate-stmt associated allocate directive, Fortran allocatables are

[Patch][v5] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-10-07 Thread Tobias Burnus
up OK for mainline? Tobias On 02.10.22 20:13, Tobias Burnus wrote: On 27.09.22 11:23, Tobias Burnus wrote: We do support #if __PTX_SM__ >= 600 (CUDA >= 8.0, ptx isa >= 5.0) and we also can configure GCC with --with-arch=sm_70 (or sm_80 or ...) Thus, adding atomics with .sys scope is

Re: [Patch] openmp: Map holds clause to IFN_ASSUME for Fortran

2022-10-06 Thread Tobias Burnus
On 06.10.22 14:17, Jakub Jelinek wrote: On Thu, Oct 06, 2022 at 12:55:01PM +0200, Tobias Burnus wrote: I don't know whether it makes sense to handle – in the long run – the case of se.pre/se.post being nonempty – and, if so, how. I think it is essential not to throw those away, if se.pre

[Patch] openmp: Map holds clause to IFN_ASSUME for Fortran

2022-10-06 Thread Tobias Burnus
Same as for C/C++, albeit a tiny bit longer patch. I don't know whether it makes sense to handle – in the long run – the case of se.pre/se.post being nonempty – and, if so, how. OK for mainline? Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201,

Re: [PATCH][pushed] contrib: run fetch before pushing Daily bump

2022-10-05 Thread Tobias Burnus
On 05.10.22 20:41, Martin Liška wrote: +++ b/contrib/gcc-changelog/git_update_version.py @@ -127,6 +127,7 @@ def update_current_branch(ref_name): repo.git.add(datestamp_path) if not args.current: repo.index.commit('Daily bump.') +

Re: [Patch] Fortran: Add OpenMP's assume(s) directives

2022-10-05 Thread Tobias Burnus
Minor update to just posted patch: the table did not revert all strings where a substring directive name existed, i.e. 'target' vs. 'target update', 'assume' vs. 'assumes'. Now fixed. Otherwise unchanged: Tobias On 05.10.22 13:19, Tobias Burnus wrote: Hi Jakub, On 04.10.22 14:58, Jakub

Re: [Patch] Fortran: Add OpenMP's assume(s) directives

2022-10-05 Thread Tobias Burnus
Hi Jakub, On 04.10.22 14:58, Jakub Jelinek via Gcc-patches wrote: On Tue, Oct 04, 2022 at 02:26:13PM +0200, Tobias Burnus wrote: On Sun, Oct 02, 2022 at 07:47:18PM +0200, Tobias Burnus wrote: --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi OK? Ok, thanks. Committed as https

Re: [Patch] Fortran: Add OpenMP's assume(s) directives

2022-10-04 Thread Tobias Burnus
Hi Jakub, On 04.10.22 12:19, Jakub Jelinek wrote: On Sun, Oct 02, 2022 at 07:47:18PM +0200, Tobias Burnus wrote: --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -2749,9 +2749,9 @@ have support for @option{-pthread}. @option{-fopenmp} implies @opindex fopenmp-simd @cindex OpenMP SIMD

Re: [patch] install.texi: gcn - update llvm reqirements, gcn/nvptx - newlib use version

2022-10-04 Thread Tobias Burnus
On 30.09.22 10:00, Tobias Burnus wrote: That's for https://gcc.gnu.org/install/specific.html ... * doc/install.texi (Specific): Add missing items to bullet list. (amdgcn): Update LLVM requirements, use version not date for newlib. (nvptx): Use version not git

Re: [Patch] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-10-02 Thread Tobias Burnus
On 27.09.22 11:23, Tobias Burnus wrote: We do support #if __PTX_SM__ >= 600 (CUDA >= 8.0, ptx isa >= 5.0) and we also can configure GCC with --with-arch=sm_70 (or sm_80 or ...) Thus, adding atomics with .sys scope is possible. See attached patch. This seems to work fine and I h

[Patch] Fortran: Add OpenMP's assume(s) directives

2022-10-02 Thread Tobias Burnus
This patch adds '!$omp assume' and '!$omp assumes' support. None of the directives is used after resolution. When we actually start using for 'assumes', it has to be stored in .mod files. The other question is how to handle 'holds()' expressions with 'assumes'. -fopenmp-simd: I used a longer

Re: [PATCH v3 06/11] OpenMP: Pointers and member mappings

2022-09-30 Thread Tobias Burnus
On 30.09.22 15:30, Julian Brown wrote: On Fri, 23 Sep 2022 14:10:51 +0200 Tobias Burnus <mailto:tob...@codesourcery.com> wrote: ... I added n->expr->expr_type == EXPR_VARIABLE to the condition -- I think that should suffice for now? Yes. A similar mean way to write code would

Re: [PATCH v3 06/11] OpenMP: Pointers and member mappings

2022-09-30 Thread Tobias Burnus
Hi Julian, On 30.09.22 15:30, Julian Brown wrote: i = 1; j = 2 map (foo(i)%dt_ptr(1:3), foo(j)%dt_ptr) Good catch! In that gfc_dep_resolver considers those terms to have a dependency, and that triggers the mapping node transformation. But I don't think OpenMP allows you to write this:

Re: [Patch] Fortran: Update use_device_ptr for OpenMP 5.1 [PR105318]

2022-09-30 Thread Tobias Burnus
Hi Jakub, On 30.09.22 13:04, Jakub Jelinek via Fortran wrote: On Fri, Sep 30, 2022 at 12:41:19PM +0200, Tobias Burnus wrote: And 'device(omp_initial_device)' printed a warning in Fortran. (BTW: C/C++ silently accepts any negative value.) I think that is what the standard wants. E.g. in 5.2

Re: [Patch] Fortran: Update use_device_ptr for OpenMP 5.1 [PR105318]

2022-09-30 Thread Tobias Burnus
On 30.09.22 12:41, Tobias Burnus wrote: Fortran: Update use_device_ptr for OpenMP 5.1 [PR105318] The following two lines slipped in – which I have now removed in my version of the patch: --- a/gcc/testsuite/gfortran.dg/gomp/is_device_ptr-1.f90 +++ b/gcc/testsuite/gfortran.dg/gomp

[Patch] Fortran: Update use_device_ptr for OpenMP 5.1 [PR105318]

2022-09-30 Thread Tobias Burnus
While has_device_addr has been implemented (in GCC 12), updating use_device_ptr for Fortran was missed. This patch fixes it: Removing the restrictions and mapping to has_device_addr where applicable. For use_device_ptr something similar was done, albeit I think this has no semantic effect. And

[patch] install.texi: gcn - update llvm reqirements, gcn/nvptx - newlib use version

2022-09-30 Thread Tobias Burnus
That's for https://gcc.gnu.org/install/specific.html [I did notice (just before submitting) that the bullet list was incomplete - hence, I added it. (Also one ref missed a '-x'.) However, main reason for this patch is for GCN:] The listed LLVM version for GCN was outdated. For newlib, I also

Re: [PATCH] OpenACC: whole struct vs. component mappings (PR107028)

2022-09-29 Thread Tobias Burnus
On 29.09.22 14:59, Julian Brown wrote: On Wed, 28 Sep 2022 17:17:30 +0200 Tobias Burnus wrote: I don't see immediately whether some cases can still reach omp_accumulate_sibling_list – if so, a testcase would be nice, or whether that error_at can now be removed. This version of the patch

Re: [PATCH] driver, cppdefault: Unbreak bootstrap on Debian/Ubuntu [PR107059]

2022-09-29 Thread Tobias Burnus
On 29.09.22 09:06, Jakub Jelinek wrote: My recent change to enable _Float{16,32,64,128,32x,64x,128x} for C++ apparently broke bootstrap on some Debian/Ubuntu setups. Those multiarch targets put some headers into /usr/include/x86_64-linux-gnu/bits/ etc. subdirectory instead of /usr/include/bits/.

Re: [PATCH] OpenACC: whole struct vs. component mappings (PR107028)

2022-09-28 Thread Tobias Burnus
On 28.09.22 15:20, Julian Brown wrote: This patch fixes an ICE when both a complete struct variable and components of that struct are mapped on the same directive for OpenACC, using a modified version of the scheme used for OpenMP in the following patch [...] Tested with offloading to NVPTX. OK?

Re: [OG12][PATCH] OpenMP: Fix ICE with OMP metadirectives

2022-09-28 Thread Tobias Burnus
Hi Paul-Antoine, hi all, On 28.09.22 15:47, Paul-Antoine Arras wrote: Here is a revised patch resulting from your comments. The only issue that I could not easily fix is the following code triggering an ICE: [...] I filed a PR on Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107067 Is

[committed] libgomp.texi: Status 'P' for 'assume', remove duplicated line

2022-09-28 Thread Tobias Burnus
: Tobias Burnus Date: Wed Sep 28 10:24:58 2022 +0200 libgomp.texi: Status 'P' for 'assume', remove duplicated line libgomp/ * libgomp.texi (OpenMP 5.1): Mark 'assume' as implemented for C/C++. Remove duplicated 'begin declare target' entry. --- libgomp

[wwwdocs][patch] gcc-13/changes.html: Add nvptx's --with-arch

2022-09-28 Thread Tobias Burnus
The attached patch documents the new nvptx configure flag --with-arch=sm_... Comments? OK? Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf;

Re: [Patch] libgomp/gcn: Prepare for reverse-offload callback handling

2022-09-27 Thread Tobias Burnus
For those without a working crystal ball, I have now also included the patch. On 27.09.22 15:15, Tobias Burnus wrote: This patch adds support to handle reverse offload to libgomp's plugin-gcn.c and to AMD GCN's libgomp target.c. In theory, that's all whats needed for GCN – in practice

[Patch] libgomp/gcn: Prepare for reverse-offload callback handling

2022-09-27 Thread Tobias Burnus
This patch adds support to handle reverse offload to libgomp's plugin-gcn.c and to AMD GCN's libgomp target.c. In theory, that's all whats needed for GCN – in practice there a known issue with private stack variables which has to be addressed independently. Once this and the target.c generic

Re: [Patch] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-09-27 Thread Tobias Burnus
expanded and improved. For this feature, I did not add any wording in this patch: until the feature is actually enabled, it would be more confusing than helpful. On Mon, 26 Sep 2022, Tobias Burnus wrote: In theory, compiling with "-m32 -foffload-options=-m64" or "-m32 -foffload-opt

Re: [Patch] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-09-26 Thread Tobias Burnus
100644 index 000..9fd1b27 --- /dev/null +++ b/libgomp/config/nvptx/libgomp-nvptx.h @@ -0,0 +1,52 @@ +/* Copyright (C) 2005-2022 Free Software Foundation, Inc. + Contributed by Tobias Burnus . + + This file is part of the GNU Offloading and Multi Processing Library + (libgomp). + +

Re: [Patch] OpenACC: Fix reduction tree-sharing issue [PR106982]

2022-09-26 Thread Tobias Burnus
Hi Richard, On 26.09.22 10:32, Richard Biener wrote: On Fri, Sep 23, 2022 at 5:25 PM Tobias Burnus <mailto:tob...@codesourcery.com> wrote: This fixes a tree-sharing ICE. It seems as if all unshare_expr I added were required in this case. [...] looks like v1/v2/v3 are now unshared

[Patch] OpenACC: Fix reduction tree-sharing issue [PR106982]

2022-09-23 Thread Tobias Burnus
This fixes a tree-sharing ICE. It seems as if all unshare_expr I added were required in this case. The first long testcase is based on the real testcase from the OpenACC testsuite, the second one is what reduction produced - but I thought some nested reduction might be interesting as well; hence,

Re: [PATCH v3 06/11] OpenMP: Pointers and member mappings

2022-09-23 Thread Tobias Burnus
Hi Julian and Jakub, hi all, On 23.09.22 09:29, Julian Brown wrote: How about this version? (Re-tested.) [...] * * * Some more generic (pre)remarks – not affecting the patch code, but possibly the commit log message: This follows OMP 5.0, 2.19.7.1 "map Clause": which is also in "OMP 5.2,

Re: [OG12][PATCH] OpenMP: Fix ICE with OMP metadirectives

2022-09-22 Thread Tobias Burnus
Hello Paul-Antoine, hi all, On 21.09.22 23:18, Paul-Antoine Arras wrote: Here is a patch that fixes an ICE in gfortran triggered by an invalid end statement at the end of an OMP metadirective: Remark for other reads of this email: This only applies to OG12 as mainline does not have the

Re: [PATCH][pushed] fortran: remove 2 dead links [PR106636]

2022-09-20 Thread Tobias Burnus
Hi Martin, On 20.09.22 14:24, Martin Liška wrote: On 9/20/22 14:17, Tobias Burnus wrote: Instead of removing the links, can we rather replace it by an updated link? [...] Thanks for the archeological work you did. Sure, what about the suggested patch? LGTM. Thanks! Tobias

Re: [PATCH][pushed] fortran: remove 2 dead links [PR106636]

2022-09-20 Thread Tobias Burnus
Hi Martin, On 20.09.22 14:02, Martin Liška wrote: diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi @@ -455,9 +455,7 @@ version 2.6, @uref{https://www.openacc.org/}). See The Fortran 95 standard specifies in Part 2 (ISO/IEC 1539-2:2000) varying length character strings.

[Patch] Fortran: F2018 type(*),dimension(*) with scalars [PR104143]

2022-09-20 Thread Tobias Burnus
In several cases, one just wants to have the address where an object starts without requiring the detour via 'c_loc' and the (locally) required 'target' attribute. In principle, type(*),dimension(*) of TS29113 permits this, except that 'dimension(*)' only permits arrays and array elements but

FYI: "declare mapper" patch set for Fortran (June 2022) (was: [PATCH v3 11/11] FYI/unfinished: OpenMP 5.0 "declare mapper" support for C++)

2022-09-14 Thread Tobias Burnus
On 13.09.22 23:04, Julian Brown wrote: This patch implements OpenMP 5.0 "declare mapper" support for C++. And to complete list of patches belonging to this set, Julian had posted the associated Fortran patch set in June: [PATCH 0/6] OpenMP 5.0: Fortran "declare mapper" support

[committed] libgomp.texi: move item from gcn to nvptx

2022-09-13 Thread Tobias Burnus
hen; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit eec36f27c3ca85d3b6b469e7161b63b69a5823ac Author: Tobias Burnus Date: Tue Sep 13 09:08:57 2022 +0200 libgomp.texi: move i

Re: [Patch] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-09-13 Thread Tobias Burnus
is not yet enabled, even with this patch. On 26.08.22 11:07, Tobias Burnus wrote: PRE-REMARK As nvptx (and all other plugins) returns <= 0 for GOMP_OFFLOAD_get_num_devices if GOMP_REQUIRES_REVERSE_OFFLOAD is set. This patch is currently still a no op. The patch is almost stand alone, exc

[Patch] nvptx/mkoffload.cc: Warn instead of error when reverse offload is not possible (was: Re: [Patch][2/3][v2] nvptx: libgomp+mkoffload.cc: Prepare for reverse offload fn lookup)

2022-09-12 Thread Tobias Burnus
On 09.09.22 17:36, Jakub Jelinek wrote: Wonder if we instead shouldn't arrange for silent request for no PTX offloading (or one with warning?) if sm_30 and reverse offload is needed. Error might be too harsh, the program can still offload to GCN or host just fine... Attached patch now

[patch] libgomp.texi: Impl. status fix/addition

2022-09-12 Thread Tobias Burnus
This patch is about the OpenMP 5.{1,2} implementation status. For omp/ompx/omx, I think it was a bit misleading. omp/ompx (and omx) are reserved namespaces; for 'omp' nothing needs to be done (either already implemented or not), while for 'ompx'/'omx' (vendor extension), the note + footnote

GCN: Add -mlow-precision-sqrt for double-precision sqrt [PR105246] (was: Re: [PATCH] amdgcn: Add support for additional natively supported floating-point operations)

2022-09-09 Thread Tobias Burnus
On 09.09.22 12:16, Richard Biener wrote: On Fri, 9 Sep 2022, Tobias Burnus wrote: -funsafe-math-optimizations implies -fno-signed-zeros, -fno-trapping-math, -fassociative-math, and -freciprocal-math. All of them reduce precision and my violate IEEE or ISO/language standards. However, I think

Re: [PATCH] amdgcn: Add support for additional natively supported floating-point operations

2022-09-09 Thread Tobias Burnus
On 09.09.22 10:10, Andrew Stubbs wrote: On 08.09.22 22:38, Kwok Cheung Yeung wrote: The instructions for the transcendental functions are documented to have limited numerical precision, so they are only used if unsafe_math_optimizations are enabled for now. -funsafe-math-optimizations implies

Re: OpenMP patch ping

2022-09-06 Thread Tobias Burnus
/2022-August/600490.html Backlog: On 16.08.22 19:28, Tobias Burnus wrote: * [Patch] OpenMP, libgomp, gimple: omp_get_max_teams, omp_set_num_teams, and omp_{gs}et_teams_thread_limit on offload devices https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599278.html [Depends on just-reviewed

Re: [r13-2446 Regression] FAIL: gfortran.dg/gomp/doacross-5.f90 -O (test for excess errors) on Linux/x86_64

2022-09-06 Thread Tobias Burnus
; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit d6582c662ca0da05c74fa3183e1bc2cadcb21424 Author: Tobias Burnus Date: Tue Sep 6 10:02:13 2022 +0200 Fix Fortran/openmp: Partial OpenMP 5.2 doacross This removed

Re: [committed] openmp: Partial OpenMP 5.2 doacross and omp_cur_iteration support

2022-09-05 Thread Tobias Burnus
On 03.09.22 10:07, Jakub Jelinek wrote: The following patch implements part of the OpenMP 5.2 changes related to ordered loops ... Fortran bits to it attached. OK for mainline? Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München;

[wwwdocs] gcc-13/changes.html + projects/gomp/: OpenMP update

2022-09-02 Thread Tobias Burnus
Update the OpenMP status for features that were added in the last months. Comments/suggestions? Okay to commit? Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas

Re: [Patch][2/3][v2] nvptx: libgomp+mkoffload.cc: Prepare for reverse offload fn lookup

2022-08-29 Thread Tobias Burnus
Slightly revised version, fixing some issues in mkoffload.cc. Otherwise, the same applies: On 25.08.22 19:30, Tobias Burnus wrote: On 25.08.22 16:54, Tobias Burnus wrote: The attached patch prepare for reverse-offload device->host function-address lookup by requesting (if needed) the on-dev

[Patch] libgomp.texi: Document libmemkind + nvptx/gcn specifics

2022-08-29 Thread Tobias Burnus
I had this patch lying around since about half a year. I did tweak and agumented it a bit today, but finally want to get rid of it (locally - by getting it committed) ... This patch changes -misa to -march for nvptx (the latter is now an alias for the former), it adds a new section about

[Patch] OpenMP: Document ompx warnings + add Fortran omx warning [PR106670]

2022-08-29 Thread Tobias Burnus
(Patch + RFC.) OpenMP 5.2 has 'ompx' and (for fixed source form Fortran) 'omx' as sentinel to provide a defined namespace for vendor extensions. The behavior when encountering an unknown directive with ompx/omp sentinel (or an unknown clause with ompx_ prefix) is implementation defined. For

[Patch] OpenMP/Fortran: Permit end-clause on directive

2022-08-26 Thread Tobias Burnus
I did run into some issues related to this; those turned out to be unrelated, but I end ended up implementing this feature. Side remark: 'omp parallel workshare' seems to actually permit 'nowait' now, but I guess that's an unintended change due to the syntax-representation change. Hence, it is

[Patch] libgomp: Add reverse-offload splay tree

2022-08-26 Thread Tobias Burnus
For reverse-offload data handling, we need to support: (a) device fn addr -> host fn address (b) finding already mapped host -> device vars via their device address For (a), the functions addrs, we need some extra code (cf. previous patches) as this information does not exist already. For (b),

[Patch] libgomp/nvptx: Prepare for reverse-offload callback handling

2022-08-26 Thread Tobias Burnus
@Tom and Alexander: Better suggestions are welcome for the busy loop in libgomp/plugin/plugin-nvptx.c regarding the variable placement and checking its value. PRE-REMARK As nvptx (and all other plugins) returns <= 0 for GOMP_OFFLOAD_get_num_devices if GOMP_REQUIRES_REVERSE_OFFLOAD is set. This

[Patch][2/3] nvptx: libgomp+mkoffload.cc: Prepare for reverse offload fn lookup

2022-08-25 Thread Tobias Burnus
On 25.08.22 16:54, Tobias Burnus wrote: The attached patch prepare for reverse-offload device->host function-address lookup by requesting (if needed) the on-device address. This patch adds the actual implementation for NVPTX. Having array[] = {fn1,fn2}; works with nvptx only since sm

[Patch][2/3] GCN: libgomp+mkoffload.cc: Prepare for reverse offload fn lookup

2022-08-25 Thread Tobias Burnus
On 25.08.22 16:54, Tobias Burnus wrote: The attached patch prepare for reverse-offload device->host function-address lookup by requesting (if needed) the on-device address. This patch adds the actual implementation for GCN. A variant would be to only generate .offload_func_table ins

[Patch][1/3] libgomp: Prepare for reverse offload fn lookup

2022-08-25 Thread Tobias Burnus
Technically, this patch is stand alone, but conceptually it based on the submitted but not reviewed patch: "[Patch] OpenMP: Support reverse offload (middle end part)" https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598662.html With that patch, for reverse offloads ('omp target

Re: [PATCH] Fortran: improve error recovery while simplifying size of bad array [PR103694]

2022-08-24 Thread Tobias Burnus
Dear Harald, On 23.08.22 22:29, Harald Anlauf via Fortran wrote: the simplification of the size of an array with a bad decl should not be successful. Improve the error recovery for such a situation. [...] Regtested on x86_64-pc-linux-gnu. The PR is marked as a 12/13 regression. Will

[Patch] Fortran/OpenMP: Fix strictly structured blocks parsing

2022-08-24 Thread Tobias Burnus
This patch is about error diagnostic + an ICE for invalid code. Before the patch, gfortran/f951 showed: ... Error: 'ancestor' device modifier not preceded by 'requires' directive with 'reverse_offload' clause 18 | end block | 1 Error: Expecting END PROGRAM statement at (1) gfortran:

Re: [committed] gfortran.dg/gomp/depend-4.f90: Minor fix

2022-08-23 Thread Tobias Burnus
And the same for depend-6.f90, which was obviously copied from depend-4.f90. Committed as https://gcc.gnu.org/r13-2152-gf05e3b2c63f3307ba405900f1a80c25b2e87b0a3 On 23.08.22 12:34, Tobias Burnus wrote: Not really crucial as it is a compile-time test, but there was an off-by-one typo: !$omp

[committed] gfortran.dg/gomp/depend-4.f90: Minor fix

2022-08-23 Thread Tobias Burnus
; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit 6b2a584ed5bed1b851ee7b4668ac705f20cbb2c4 Author: Tobias Burnus Date: Tue Aug 23 12:31:43 2022 +0200 gfortran.dg/gomp/depend-4.f90: Minor fix gcc/testsuite/ * gfortran.dg/gomp/depend-4.f90

[Patch] lto-wrapper.cc: Delete offload_names temp files in case of error [PR106686]

2022-08-19 Thread Tobias Burnus
I saw that files such as /tmp/ccxFKYeS.target.o kept accumulating. Not a high number, but still several. I turned out that when compiling an offloading program successfully, they were removed. But when it failed, those remained. (Example: See PR.) This patch fixes this by storing the file

[Patch] mkoffload: Cleanup temporary omp_requires_file

2022-08-19 Thread Tobias Burnus
Rather obvious, once found. I forgot to add some cleanup, cluttering /tmp with ".mkoffload.omp_requires". The same issue exists for GCN also for ".mkoffload.dbg" OK for mainline? – For the dbg issue, OK also for GCC 11 and 12 backport? Follow-up to the 'OpenMP: Move omp requires checks to

Re: [Patch] Fortran: OpenMP fix declare simd inside modules and absent linear step [PR106566]

2022-08-17 Thread Tobias Burnus
On 17.08.22 15:09, Jakub Jelinek wrote: On Tue, Aug 16, 2022 at 04:45:07PM +0200, Tobias Burnus wrote: Fortran: OpenMP fix declare simd inside modules and absent linear step [PR106566] ... LGTM. +! { dg-final { scan-tree-dump-times "__attribute__\\(\\(omp declare simd \\(linear\\(

Re: [PATCH] fortran: Add -static-libquadmath support [PR46539]

2022-08-17 Thread Tobias Burnus
On 16.08.22 16:31, Jakub Jelinek via Gcc-patches wrote: The following patch is a revival of the https://gcc.gnu.org/legacy-ml/gcc-patches/2014-10/msg00771.html patch. While trunk configured against recent glibc and with linker --as-needed support doesn't really need to link against -lquadmath

OpenMP patch ping

2022-08-16 Thread Tobias Burnus
I would like to ping the following OpenMP patches. First two non-pings but just RFC: - "Restore 'GOMP_offload_unregister_ver' functionality" https://gcc.gnu.org/pipermail/gcc-patches/2022-July/597918.html * QUESTION: See 'assert' question in email exchange (linked email message + emails

[Patch] OpenMP: Fix var replacement with 'simd' and linear-step vars [PR106548]

2022-08-16 Thread Tobias Burnus
The testcase is just a copy of linear-1 with 'omp ... for' replaced by 'omp ... for simd', matching what the PR report referred to. The problem occurs for 'omp ... for simd linear( i : step)' when 'step' is a variable when a omp_fn... is generated - as in this case, the original variable is

Re: [Patch] Fortran: OpenMP fix declare simd inside modules and absent linear step [PR106566]

2022-08-16 Thread Tobias Burnus
Fixed subject line: "absent linear" should be "absent linear step" in the subject line; i.e. with "step" added: "Fortran: OpenMP fix declare simd inside modules and absent linear step [PR106566]" I have also decided to move the 'step = 1' to openmp.cc, which also set it before with the old

[Patch] Fortran: OpenMP fix declare simd inside modules and absent linear [PR106566]

2022-08-16 Thread Tobias Burnus
This patch fixes two issues – the first was reported to me by email but it also shows up in the official OpenMP examples (see PR). Namely: Inside a module, 'gfc_match(" ( %s )")' fails as the symbol is already host associated. (The symbol is the current procedure name.) Solution: Match with

[committed] – was: [Patch] OpenMP: Fix folding with simd's linear clause [PR106492]

2022-08-09 Thread Tobias Burnus
On 04.08.22 09:32, Tobias Burnus wrote: Rather obvious fix and similar to PR106449. OK for mainline and backporting (how far?). I would like to backport it at least to GCC 12. Now committed as obvious: https://gcc.gnu.org/g:r13-1997-g8a16b9f983824b6b9a25275cd23b6bba8c98b800 I intent

[Patch] OpenMP: Fix folding with simd's linear clause [PR106492]

2022-08-04 Thread Tobias Burnus
Rather obvious fix and similar to PR106449. OK for mainline and backporting (how far?). I would like to backport it at least to GCC 12. Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung;

[Patch] Add libgomp.c-c++-common/pr106449-2.c (was: [committed] openmp: Fix up handling of non-rectangular simd loops with pointer type iterators [PR106449])

2022-07-29 Thread Tobias Burnus
On 29.07.22 10:03, Jakub Jelinek wrote: There were 2 issues visible on this new testcase, one that we didn't have special POINTER_TYPE_P handling in a few spots of expand_omp_simd ... The other issue was that we put n2 expression directly into a comparison in a condition and regimplified that,

[Patch] OpenMP/Fortran: Permit assumed-size arrays in uniform clause

2022-07-29 Thread Tobias Burnus
Testcase wise, the run-time testcase libgomp.fortran/examples-4/simd-2.f90 checks essentially the same, except that it uses an array-descriptor array (assumed shape) while this testcase uses an assumed-size array. I decided for an extra compile-time only testcase, but it could be also be moved

Re: [PATCH, OpenMP, C++] Allow classes with static members to be mappable

2022-07-27 Thread Tobias Burnus
Hi all, On 05.05.22 11:12, Jakub Jelinek via Gcc-patches wrote: → https://gcc.gnu.org/pipermail/gcc-patches/2022-May/594082.html On Wed, Mar 09, 2022 at 07:04:24PM +0800, Chung-Lin Tang wrote: → https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591449.html Now in OpenMP 5.x, static members

[Patch] OpenMP requires: Fix diagnostic filename corner case

2022-07-22 Thread Tobias Burnus
This patch addresses a corner case which causes a filename confusion: lto1: error: OpenMP 'requires' directive with 'unified_address' specified only in some compilation units lto1: note: '1.c' has 'unified_address' lto1: note: but '1.c' has not lto1: fatal error: errors during merging of

[patch] libgomp/splay-tree.h: Fix splay_tree_prefix handling

2022-07-22 Thread Tobias Burnus
As is, it is only a cleanup/consistency patch. However, I did run into this issue when working on the reverse-offload implementation (to handle reverse lookups of vars and functions). OK for mainline? Tobias - Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße

Re: [Patch] OpenMP: Support reverse offload (middle end part)

2022-07-21 Thread Tobias Burnus
Ups to quick/wrong patch file. I had found an issue related to 'noclone' (duplicated entries, dg-scan-dump issues with OpenACC) – but ended up to attach the wrong file... Changes: omp-low.cc and gcc/testsuite/*/goacc/. The rest is the same. Tobias On 21.07.22 12:55, Tobias Burnus wrote

[Patch] OpenMP: Support reverse offload (middle end part)

2022-07-21 Thread Tobias Burnus
This patch does three things: (a) It removes a 'sorry' for 'device(ancestor:1)' and passes GOMP_DEVICE_HOST_FALLBACK as device number. This is sufficient for full "reverse" offload support with ENABLE_OFFLOADING being false - and -foffload=disable. And for simple hello-world cases. On the

Re: XFAIL 'offloading_enabled' diagnostics issue in 'libgomp.oacc-c-c++-common/reduction-5.c' [PR101551] (was: Enhance '_Pragma' diagnostics verification in OMP C/C++ test cases)

2022-07-12 Thread Tobias Burnus
Hi, On 12.07.22 13:50, Lewis Hyatt via Gcc-patches wrote: On Tue, Jul 12, 2022 at 2:33 AM Thomas Schwinge wrote: On 2022-07-11T11:27:12+0200, I wrote: Oh my, PR101551 "[offloading] Differences in diagnostics etc." strikes again... The latter two 'note' diagnostics are currently only emitted

[committed] libgomp: Add tailing \n to gomp_debug

2022-07-12 Thread Tobias Burnus
; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 commit 220bef460153a0296e947f16492d35e67b1b5b22 Author: Tobias Burnus Date: Tue Jul 12 11:10:50

<    1   2   3   4   5   6   7   8   9   10   >