This pattern enables the combine pass (or late-combine, depending on the case)
to merge a float_extend'ed vec_duplicate into a (possibly negated) minus-mult
RTL instruction.
Before this patch, we have six instructions, e.g.:
vsetivli zero,4,e32,m1,ta,ma
fcvt.s.h fa5,fa5
vfmv.v.f
On 14/07/2025 14:13, Jeff Law wrote:
Paul-Antoine''s patches don't have the leading "a" and "b" component
typically seen in a patch from git diff. I wonder if that's why pre-
commit testing isn't picking them up properly.
It's something I noticed when adding them to my system.
Yes, I have t
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a float_extend'ed vec_duplicate into a plus-mult or minus-mult RTL
instruction.
Before this patch, we have three instructions, e.g.:
fcvt.s.h fa5,fa5
vfmv.v.f v24,fa5
vfmadd.vv v8,v24,v16
Hi Robin,
On 09/07/2025 11:11, Robin Dapp wrote:
Hi Paul-Antoine,
+;; Intermediate pattern for vfwmacc.vf and vfwmsac.vf used by combine
+(define_insn_and_split "*extend_vf_"
+ [(set (match_operand:VWEXTF 0 "register_operand")
+ (vec_duplicate:VWEXTF
+ (float_extend:
+ (match_op
zvfh is not enabled at the testsuite level. It has to be enabled on a testcase
by testcase basis. This was correctly done for compile tests but not for run
tests. This patch fixes it.
Also, to ensure correct results with half-precision floats, MAX_RELATIVE_DIFF is
set according to the type.
gcc/te
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a float-extended vec_duplicate into a plus-mult or minus-mult RTL
instruction.
Before this patch, we have three instructions, e.g.:
fcvt.s.h fa5,fa5
vfmv.v.f v24,fa5
vfmadd.vv v8,v24,v16
On 30/06/2025 08:16, Robin Dapp wrote:
This is failing pre-commit testing:
linux rv64gcv lp64d medlow multilib:
FAIL: gcc.target/riscv/rvv/base/bug-4.c (internal compiler error: in
extract_insn, at recog.cc:2882)
FAIL: gcc.target/riscv/rvv/base/bug-4.c (test for excess errors)
linux rv32gcv
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a vec_duplicate into a (possibly negated) minus-mult RTL instruction.
Before this patch, we have two instructions, e.g.:
vfmv.v.fv6,fa0
vfnmacc.vv v2,v6,v4
After, we get only one:
vfnmacc.vf
On 26/06/2025 15:35, Robin Dapp wrote:
This is a followup to 92e1893e0 "RISC-V: Add patterns for vector-scalar
multiply-(subtract-)accumulate" that caused an ICE in some cases where
the mult
operands were wrongly swapped.
This patch ensures that operands are not swapped in the vector-scalar
ca
This is a followup to 92e1893e0 "RISC-V: Add patterns for vector-scalar
multiply-(subtract-)accumulate" that caused an ICE in some cases where the mult
operands were wrongly swapped.
This patch ensures that operands are not swapped in the vector-scalar case.
PR target/120828
gcc/ChangeLog
48dafaeb3c0212e6 Mon Sep 17 00:00:00 2001
From: Paul-Antoine Arras
Date: Tue, 17 Jun 2025 13:36:09 +
Subject: [PATCH] haifa-sched: Elide leftover instruction after breaking dependency [PR120459]
PR target/120459
gcc/ChangeLog:
* haifa-sched.cc (apply_replacement): Check whether the pro
On 17/06/2025 18:19, Jeff Law wrote:
On 6/17/25 7:15 AM, Paul-Antoine Arras wrote:
This is part of my vector-scalar FMA series. See:
https://gcc.gnu.org/pipermail/gcc-patches/2025-March/679513.html
https://gcc.gnu.org/pipermail/gcc-patches/2025-June/685624.html
The attached patch handles
est 3).
Any suggestion would be appreciated!
Thanks,
--
PA
commit 03fe5570ae7f9dfa354a9a6fc4afd1cb6f28e1f1
Author: Paul-Antoine Arras
Date: Thu Jun 12 11:30:20 2025 +0200
RISC-V: Add patterns for vector-scalar multiply-(subtract-)accumulate [PR119100]
This pattern enables the combine
On 04/06/2025 20:43, Vineet Gupta wrote:
On 6/4/25 11:34, Paul-Antoine Arras wrote:
Hi Vineet,
On 04/06/2025 20:29, Vineet Gupta wrote:
Hi Paul,
On 5/30/25 03:04, Paul-Antoine Arras wrote:
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a
Hi Vineet,
On 04/06/2025 20:29, Vineet Gupta wrote:
Hi Paul,
On 5/30/25 03:04, Paul-Antoine Arras wrote:
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a vec_duplicate into a plus-mult or minus-mult RTL instruction.
Before this patch, we have two
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a vec_duplicate into a (possibly negated) minus-mult RTL instruction.
Before this patch, we have two instructions, e.g.:
vfmv.v.fv6,fa0
vfnmadd.vv v2,v6,v4
After, we get only one:
vfnmadd.vf
Hi Robin,
On 30/05/2025 10:18, Robin Dapp wrote:
BTW it's the late-combine pass that performs the optimization, not the
combine pass. You might still want to fix this in the commit message.
I updated the commit message.
Actually, it depends whether or not the vec_duplicate is hoisted to the
This pattern enables the combine pass (or late-combine, depending on the case)
to merge a vec_duplicate into a plus-mult or minus-mult RTL instruction.
Before this patch, we have two instructions, e.g.:
vfmv.v.fv6,fa0
vfmadd.vv v9,v6,v7
After, we get only one:
vfmadd.vf
Since last patch introduced get_fr2vr_cost () to get the correct cost to move
data from a floating-point to a vector register, this patch replaces existing
uses of the constant FR2VR.
gcc/ChangeLog:
* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Replace
FR2VR with
-
PAcommit b17bd6b3fc8e0f3f1e839bc292f239b28192c607
Author: Paul-Antoine Arras
Date: Mon May 12 14:42:24 2025 +0200
RISC-V: Add pattern for vector-scalar multiply-add/sub [PR119100]
This pattern enables the combine pass to merge a vec_duplicate into a plus-mult
or minus-mult RTL instruction.
On 06/05/2025 15:06, Jeff Law wrote:
diff --git gcc/config/riscv/riscv.cc gcc/config/riscv/riscv.cc
index 38f3ae7cd84..0f0cf04bdd9 100644
--- gcc/config/riscv/riscv.cc
+++ gcc/config/riscv/riscv.cc
@@ -3864,6 +3864,18 @@ riscv_rtx_costs (rtx x, machine_mode mode, int
outer_code, int opno ATTRIBU
ecution time gains. The vector-scalar is only faster by
0.33% on average over 3 iterations.
Thanks,
--
PAcommit b0f1dbf8b4ad12c0eff459d0bf6b3d9c466fd5ad
Author: Paul-Antoine Arras
Date: Tue Feb 25 16:38:54 2025 +0100
RISC-V: Add pattern for vector-scalar multiply-add/sub [PR119100]
This patch partially enables use of the OpenMP interop construct by adding
middle end support, mostly in the omplower pass, and in the target-independent
part of the libgomp runtime. It follows up on previous patches for C, C++ and
Fortran front ends support. The full interop feature requires anoth
This pattern enables the combine pass to merge a vec_duplicate into a plus-mult
or minus-mult RTL instruction.
Before this patch, we have two instructions, e.g.:
vfmv.v.fv6,fa0
vfmadd.vv v9,v6,v7
After, we get only one:
vfmadd.vf v9,fa0,v7
On SPEC2017's 503.bwaves_r, de
On 25/03/2025 18:55, Sandra Loosemore wrote:
On 3/25/25 09:25, Paul-Antoine Arras wrote:
On 24/03/2025 21:17, Sandra Loosemore wrote:
[snip]
Besides, I am not sure how to encode complex types like (**const *).
Does that require creating new definitions in gcc/builtin-types.def
and gcc/fortran
On 24/03/2025 21:17, Sandra Loosemore wrote:
On 3/24/25 08:20, Paul-Antoine Arras wrote:
On 21/03/2025 20:17, Sandra Loosemore wrote:
Does the attached patch reflect what you have in mind?
diff --git libgomp/libgomp_g.h libgomp/libgomp_g.h
index 8993ec610fb..274f4937680 100644
--- libgomp
Here is a patch that encompasses the modifications requested by Sandra
and Thomas, as well as a fix for 32-bit pointers.
OK for trunk?
--
PAcommit b1b634d5d3c35682b65edacecf7a4749221f5728
Author: Paul-Antoine Arras
Date: Mon Mar 24 15:53:36 2025 +0100
OpenMP: interop - make arrays const
On 21/03/2025 20:17, Sandra Loosemore wrote:
On 3/21/25 11:35, Paul-Antoine Arras wrote:
Thanks Sandra and Jakub for your comments.
Here is attached an updated version of the patch:
* Removed special case for n==1, now use an array even when only one
interop object is passed.
* Updated scan
Hi Thomas,
On 24/03/2025 13:47, Thomas Schwinge wrote:
On 2025-03-21T18:35:57+0100, Paul-Antoine Arras wrote:
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/gomp/interop-5.f90
@@ -0,0 +1,21 @@
+! { dg-additional-options "-fdump-tree-omplower" }
+
+subroutine sub1 (a1, a2, a3, a
actual rather than generic types.
* Renamed 'nowait' argument into 'flags' to allow for future extension.
* Added comments.
* Fixed style and formatting.
--
PAFrom 971aff0b218e6dfc0215d3fd04bfa24aded61532 Mon Sep 17 00:00:00 2001
From: Paul-Antoine Arras
Date: Thu, 13 Mar 2025 17
Pushed to master as obvious. This should fix PR118714.
On 31/01/2025 11:46, Paul-Antoine Arras wrote:
When the ST_NONE case is taken, the function returns immediately. Not calling
pop_state causes a dangling pointer.
gcc/fortran/ChangeLog:
* parse.cc (parse_omp_dispatch): Add missing
When the ST_NONE case is taken, the function returns immediately. Not calling
pop_state causes a dangling pointer.
gcc/fortran/ChangeLog:
* parse.cc (parse_omp_dispatch): Add missing pop_state.
---
gcc/fortran/parse.cc | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git
On 13/01/2025 16:51, Tobias Burnus wrote:
Hi PA,
Paul-Antoine Arras wrote:
I am not sure I am getting that part. Is this what you are suggesting?
Yes, something like that, but not quite, as you found out.
I think we need something like the following (untested):
diff --git gcc/fortran
On 13/01/2025 14:57, Tobias Burnus wrote:
Hi PA,
Paul-Antoine Arras wrote:
Here is an updated patch following your suggestion.
Thanks. It is not clear whether you are just waiting
for test result or not before committing it as obvious.
Thus, just in case: LGTM.
Thanks,
Tobias
Thanks
Hi Tobias,
Here are an updated patch and a few questions.
On 07/01/2025 13:18, Tobias Burnus wrote:
Paul-Antoine Arras:
Add support to the Fortran parser for the new OpenMP syntax that allows a
comma after the directive name and between clauses of declare variant.
The C and C++ parsers
Hi Tobias,
On 13/01/2025 13:24, Tobias Burnus wrote:
Hi PA,
Paul-Antoine Arras wrote:
Hi Thomas,
Added libgomp/testsuite/libgomp.fortran/dispatch-1.f90.
I see this new test case FAIL (execution test SIGSEGV) for most (but not
all) offloading configurations, both GCN and nvptx:
+PASS
Hi Thomas,
On 08/01/2025 10:04, Thomas Schwinge wrote:
Hi Paul-Antoine!
On 2024-12-16T19:35:01+0100, Paul-Antoine Arras wrote:
On 15/11/2024 14:59, Tobias Burnus wrote:
Paul-Antoine Arras wrote:
This patch adds support for the `dispatch` construct and the
`adjust_args` clause to the
Hi Tobias,
On 07/01/2025 12:13, Tobias Burnus wrote:
Paul-Antoine Arras wrote:
This is a followup to
ed49709acda OpenMP: C++ front-end support for dispatch + adjust_args.
The call to cp_parser_omp_dispatch only belongs in
cp_parser_omp_construct. In
cp_parser_pragma, handle
Add support to the Fortran parser for the new OpenMP syntax that allows a
comma after the directive name and between clauses of declare variant.
The C and C++ parsers already support this syntax so only a new test is added.
gcc/fortran/ChangeLog:
* openmp.cc (gfc_match_omp_declare_variant
Apologies, I forgot to add the testcase. Please find attached an updated
patch.
On 06/01/2025 17:12, Paul-Antoine Arras wrote:
This is a followup to
084ea8ad584 OpenMP: middle-end support for dispatch + adjust_args.
This patch fixes a bug that caused arguments in an OpenMP dispatch call to be
This is a followup to
084ea8ad584 OpenMP: middle-end support for dispatch + adjust_args.
This patch fixes a bug that caused arguments in an OpenMP dispatch call to be
modified even when no variant substitution occurred.
gcc/ChangeLog:
* gimplify.cc (gimplify_call_expr): Create variable
This is a followup to
ed49709acda OpenMP: C++ front-end support for dispatch + adjust_args.
The call to cp_parser_omp_dispatch only belongs in cp_parser_omp_construct. In
cp_parser_pragma, handle PRAGMA_OMP_DISPATCH by calling cp_parser_omp_construct.
gcc/cp/ChangeLog:
* parser.cc (cp_pa
Committing this last patch in the set as obvious (and approved off list).
On 02/10/2024 18:55, Paul-Antoine Arras wrote:
libgomp/ChangeLog:
* libgomp.texi:
---
libgomp/libgomp.texi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgomp/libgomp.texi b/libgomp
On 27/12/2024 19:52, Paul-Antoine Arras wrote:
On 23/12/2024 21:04, Tobias Burnus wrote:
For adjust-args-10.f90, I wonder whether it is sufficient as compile-
time only or whether it makes more sense to have a "dg-do run" to
check that type(C_ptr) value vs. not-value works. I think
Hi Tobias,
On 23/12/2024 21:04, Tobias Burnus wrote:
Paul-Antoine Arras wrote:
Replying to your last two messages here and attaching revised patches.
Regarding the C++ and ME patches:
==> 0003-C-fix.patch <==
Subject: [PATCH 3/4] C++ fix
==> 0004-ME-fixes.patch <==
Subject: [P
g an -fdump-tree-gimple + scan test probably won't
harm, as not everyone has a GPU and we might implement map as
selfmap on APUs).
This is actually not specific to the Fortran FE. So I had to modify the
middle end and the C++ parser as well. See attached pactches.
Otherwise LGTM.
Tobias
Hi Tobias,
See the revised patch attached and my comments below.
On 15/11/2024 14:59, Tobias Burnus wrote:
Hi,
Paul-Antoine Arras wrote:
This patch adds support for the `dispatch` construct and the
`adjust_args` clause to the Fortran front-end.
Handling of `adjust_args` across translation
Hi Tobias,
Thanks for your thorough review.
On 09/10/2024 14:55, Tobias Burnus wrote:
Paul-Antoine Arras wrote:
This patch adds middle-end support for the `dispatch` construct and the
`adjust_args` clause. The heavy lifting is done in
`gimplify_omp_dispatch` and
`gimplify_call_expr
Here is an updated version of the patch following earlier reviews in the
series.
--
PAcommit 8f67de476decf151f853d68eb26223200535cc57
Author: Paul-Antoine Arras
Date: Fri May 24 19:04:35 2024 +0200
OpenMP: common C/C++ testcases for dispatch + adjust_args
gcc/testsuite/ChangeLog
TM (assuming that you have a testcase for it).
The testcase is gcc/testsuite/g++.dg/gomp/dispatch-4.C, included in
v4.1-0004-OpenMP-C-front-end-support-for-dispatch-adjust_ar.patch... but
I forgot to update the ChangeLog.
* * *
Regarding C++:
Paul-Antoine Arras wrote:
In C++,
On 30/10/2024 15:08, Tobias Burnus wrote:
I still need to look at 4/7 (C++) and 5/7 (tests for C and C++) [either
before after you posted the new version].
I sent a revised C++ patch a few moments ago.
* * *
However, this 3/7 patch LGTM 🙂
One comment: For the < C23 testcase, can you add, e.
On 24/10/2024 16:10, Tobias Burnus wrote:
Hi PA;
only playing around quickly and glancing at the patch; I need to have a
real look at this later.
Paul-Antoine Arras:
This patch adds C++ support for the `dispatch` construct and the
`adjust_args`
clause. It relies on the c-family bits comprised
On 24/10/2024 13:42, Tobias Burnus wrote:
Hi,
some more comments:
Paul-Antoine Arras wrote:
Here is an updated patch following these comments.
gcc/testsuite/ChangeLog:
* gcc.dg/gomp/adjust-args-1.c: New test.
* gcc.dg/gomp/dispatch-1.c: New test.
The
/7 or later of the series as it
requires a parser and, as written/file location, requires both C and C+
+, unless a skip for C is added.
Moved the testcase to 5/7. Will post the updated patch later.
Thanks,
--
PAcommit 6265c755697bba629fce4b27b8f1800ea1e313fb
Author: Paul-Antoine Arras
Date: Fr
Here is an updated patch following these comments.
On 09/10/2024 19:15, Tobias Burnus wrote:
First comments; I need to have a deeper, but now I need fetch some
victuals.
Paul-Antoine Arras wrote:
This patch adds support to the C front-end to parse the `dispatch`
construct and
the
Hi Tobias,
Thanks for your thorough review. Please find attached a revised patch.
On 09/10/2024 14:55, Tobias Burnus wrote:
Paul-Antoine Arras wrote:
This patch adds middle-end support for the `dispatch` construct and the
`adjust_args` clause. The heavy lifting is done in
gcc/testsuite/ChangeLog:
* c-c++-common/gomp/declare-variant-2.c: Adjust dg-error directives.
* c-c++-common/gomp/adjust-args-1.c: New test.
* c-c++-common/gomp/adjust-args-2.c: New test.
* c-c++-common/gomp/dispatch-1.c: New test.
* c-c++-common/gomp/dispat
This patch adds C++ support for the `dispatch` construct and the `adjust_args`
clause. It relies on the c-family bits comprised in the corresponding C front
end patch for pragmas and attributes.
Additional C/C++ common testcases are provided in a subsequent patch in the
series.
gcc/cp/ChangeLog:
libgomp/ChangeLog:
* libgomp.texi:
---
libgomp/libgomp.texi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index c6464ece32e..7026f32f867 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -294,8 +294,8 @@ T
This patch adds support for the `dispatch` construct and the `adjust_args`
clause to the Fortran front-end.
Handling of `adjust_args` across translation units is missing due to PR115271.
gcc/fortran/ChangeLog:
* dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext
This patch adds support to the C front-end to parse the `dispatch` construct and
the `adjust_args` clause. It also includes some common C/C++ bits for pragmas
and attributes.
Additional common C/C++ testcases are in a later patch in the series.
gcc/c-family/ChangeLog:
* c-attribs.cc (c_c
ingle function call we are
interested in is sandwiched in a sequence of pre- and post-call statements,
or when the same function is call several times within the dispatch body.
Paul-Antoine Arras (7):
OpenMP: dispatch + adjust_args tree data structures and front-end
interfaces
OpenMP: m
This patch adds middle-end support for the `dispatch` construct and the
`adjust_args` clause. The heavy lifting is done in `gimplify_omp_dispatch` and
`gimplify_call_expr` respectively. For `adjust_args`, this mostly consists in
emitting a call to `gomp_get_mapped_ptr` for the adequate device.
For
This patch introduces the OMP_DISPATCH tree node, as well as two new clauses
`nocontext` and `novariants`. It defines/exposes interfaces that will be
used in subsequent patches that add front-end and middle-end support, but
nothing generates these nodes yet.
gcc/ChangeLog:
* builtin-types
Paul-Antoine Arras
Date: Fri May 24 19:13:50 2024 +0200
OpenMP: Fortran front-end support for dispatch + adjust_args
This patch adds support for the `dispatch` construct and the `adjust_args`
clause to the Fortran front-end.
Handling of `adjust_args` across translation uni
Here is an updated version following Tobias's review on the ME patch.
The differences compared to the previous version are:
* updated DejaGnu patterns
* added testcase dispatch-8.c
--
PA
commit 533f2693680f109837f03cda2e123b155bbb5c60
Author: Paul-Antoine Arras
Date: Fri May 24 19:04:35
Hi Tobias,
Thanks for the review. Please find attached an updated patch following
your comments.
Since further adjustments to other patches of the series were required,
I'll post them shortly.
See also my replies below.
On 09/08/2024 13:51, Tobias Burnus wrote:
Paul-Antoine Arras
This patch adds support for the `dispatch` construct and the `adjust_args`
clause to the Fortran front-end.
Handling of `adjust_args` across translation units is missing due to PR115271.
gcc/fortran/ChangeLog:
* dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext
This patch adds support to the C front-end to parse the `dispatch` construct and
the `adjust_args` clause. It also includes some common C/C++ bits for pragmas
and attributes.
Additional common C/C++ testcases are in a later patch in the series.
gcc/c-family/ChangeLog:
* c-attribs.cc (c_c
libgomp/ChangeLog:
* libgomp.texi:
---
libgomp/libgomp.texi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 07cd75124b0..b35424c047a 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -294,8 +294,8 @@ T
This patch adds C++ support for the `dispatch` construct and the `adjust_args`
clause. It relies on the c-family bits comprised in the corresponding C front
end patch for pragmas and attributes.
Additional C/C++ common testcases are provided in a subsequent patch in the
series.
gcc/cp/ChangeLog:
gcc/testsuite/ChangeLog:
* c-c++-common/gomp/declare-variant-2.c: Adjust dg-error directives.
* c-c++-common/gomp/adjust-args-1.c: New test.
* c-c++-common/gomp/adjust-args-2.c: New test.
* c-c++-common/gomp/dispatch-1.c: New test.
* c-c++-common/gomp/dispat
This patch adds middle-end support for the `dispatch` construct and the
`adjust_args` clause. The heavy lifting is done in `gimplify_omp_dispatch` and
`gimplify_call_expr` respectively. For `adjust_args`, this mostly consists in
emitting a call to `gomp_get_mapped_ptr` for the adequate device.
For
-Antoine Arras (7):
OpenMP: dispatch + adjust_args tree data structures and front-end
interfaces
OpenMP: middle-end support for dispatch + adjust_args
OpenMP: C front-end support for dispatch + adjust_args
OpenMP: C++ front-end support for dispatch + adjust_args
OpenMP: common C/C++ testcases
This patch introduces the OMP_DISPATCH tree node, as well as two new clauses
`nocontext` and `novariants`. It defines/exposes interfaces that will be
used in subsequent patches that add front-end and middle-end support, but
nothing generates these nodes yet.
gcc/ChangeLog:
* builtin-types
This trivially fixes an incorrectly encoded character in the DejaGnu
scan pattern.
OK for trunk?
--
PA>From 87686fe5589711b90d0b421368747373978f2a39 Mon Sep 17 00:00:00 2001
From: Paul-Antoine Arras
Date: Mon, 15 Jul 2024 13:18:01 +0200
Subject: [PATCH] Fix non-Unicode character
---
libgomp/ChangeLog:
* libgomp.texi:
---
libgomp/libgomp.texi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 50da248b74d..a2f5897463a 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -294,8 +294,8 @@ T
This patch adds support for the `dispatch` construct and the `adjust_args`
clause to the Fortran front-end.
Handling of `adjust_args` across translation units is missing due to PR115271.
gcc/fortran/ChangeLog:
* dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext
This patch adds support to the C front-end to parse the `dispatch` construct and
the `adjust_args` clause. It also includes some common C/C++ bits for pragmas
and attributes.
Additional common C/C++ testcases are in a later patch in the series.
gcc/c-family/ChangeLog:
* c-attribs.cc (c_c
This patch adds C++ support for the `dispatch` construct and the `adjust_args`
clause. It relies on the c-family bits comprised in the corresponding C front
end patch for pragmas and attributes.
Additional C/C++ common testcases are provided in a subsequent patch in the
series.
gcc/cp/ChangeLog:
This patch introduces the OMP_DISPATCH tree node, as well as two new clauses
`nocontext` and `novariants`. It defines/exposes interfaces that will be
used in subsequent patches that add front-end and middle-end support, but
nothing generates these nodes yet.
It also adds support for new OpenMP con
This patch adds middle-end support for the `dispatch` construct and the
`adjust_args` clause. The heavy lifting is done in `gimplify_omp_dispatch` and
`gimplify_call_expr` respectively. For `adjust_args`, this mostly consists in
emitting a call to `gomp_get_mapped_ptr` for the adequate device.
For
.
Paul-Antoine Arras (8):
Fix warnings for tree formats in gfc_error
OpenMP: dispatch + adjust_args tree data structures and front-end
interfaces
OpenMP: middle-end support for dispatch + adjust_args
OpenMP: C front-end support for dispatch + adjust_args
OpenMP: C++ front-end support for
gcc/testsuite/ChangeLog:
* c-c++-common/gomp/declare-variant-2.c: Adjust dg-error directives.
* c-c++-common/gomp/adjust-args-1.c: New test.
* c-c++-common/gomp/adjust-args-2.c: New test.
* c-c++-common/gomp/dispatch-1.c: New test.
* c-c++-common/gomp/dispat
This enables proper warnings for formats like %qD.
gcc/c-family/ChangeLog:
* c-format.cc (gcc_gfc_char_table): Add formats for tree objects.
---
gcc/c-family/c-format.cc | 4
1 file changed, 4 insertions(+)
diff --git a/gcc/c-family/c-format.cc b/gcc/c-family/c-format.cc
index 5bfd
Committed as debf3885965604c81541a549d531ec450f498058
https://gcc.gnu.org/git.html#general
--
PAcommit debf3885965604c81541a549d531ec450f498058
Author: Paul-Antoine Arras
Date: Fri Jun 28 12:08:57 2024 +0200
git: Move current devel/omp/gcc branch to 14
diff --git htdocs/git.html htdocs
Hi Tobias,
Thanks for your comments. Here is an updated patch.
On 28/05/2024 09:14, Tobias Burnus wrote:
Paul-Antoine Arras:
+ if (n->sym->ts.type != BT_DERIVED
+ || !n->sym->ts.u.derived->ts.is_iso_c)
+ {
+ gfc_error ("argum
This patch adds support for the `dispatch` construct and the `adjust_args`
clause to the Fortran front-end.
gcc/fortran/ChangeLog:
* dump-parse-tree.cc (show_omp_clauses): Handle novariants and nocontext
clauses.
(show_omp_node): Handle EXEC_OMP_DISPATCH.
(show_cod
This patch adds support to the C front-end to parse the `dispatch` construct and
the `adjust_args` clause. It also includes some common C/C++ bits for pragmas
and attributes.
Additional common C/C++ testcases are in a later patch in the series.
gcc/c-family/ChangeLog:
* c-attribs.cc (c_c
libgomp/ChangeLog:
* libgomp.texi:
---
libgomp/libgomp.texi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 71d62105a20..b72accd0d26 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -294,8 +294,8 @@ T
This patch introduces the OMP_DISPATCH tree node, as well as two new clauses
`nocontext` and `novariants`. It defines/exposes interfaces that will be
used in subsequent patches that add front-end and middle-end support, but
nothing generates these nodes yet.
It also adds support for new OpenMP con
This patch adds C++ support for the `dispatch` construct and the `adjust_args`
clause. It relies on the c-family bits comprised in the corresponding C front
end patch for pragmas and attributes.
Additional C/C++ common testcases are provided in a subsequent patch in the
series.
gcc/cp/ChangeLog:
gcc/testsuite/ChangeLog:
* c-c++-common/gomp/declare-variant-2.c: Adjust dg-error directives.
* c-c++-common/gomp/adjust-args-1.c: New test.
* c-c++-common/gomp/adjust-args-2.c: New test.
* c-c++-common/gomp/dispatch-1.c: New test.
* c-c++-common/gomp/dispat
This patch adds middle-end support for the `dispatch` construct and the
`adjust_args` clause. The heavy lifting is done in `gimplify_omp_dispatch` and
`gimplify_call_expr` respectively. For `adjust_args`, this mostly consists in
emitting a call to `gomp_get_mapped_ptr` for the adequate device.
For
fx90a) GPU.
Paul-Antoine Arras (7):
OpenMP: dispatch + adjust_args tree data structures and front-end
interfaces
OpenMP: middle-end support for dispatch + adjust_args
OpenMP: C front-end support for dispatch + adjust_args
OpenMP: C++ front-end support for dispatch + adjust_args
OpenMP:
Hi Thomas,
On 26/10/2023 18:16, you wrote:
Hi!
On 2023-10-26T13:24:04+0200, Paul-Antoine Arras wrote:
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/c_ptr_tests_20.f90
@@ -0,0 +1,57 @@
+! { dg-do compile }
+! { dg-additional-options "-fopenmp" }
+[...]
--- /dev/null
+++ b/gcc
Hi Tobias,
Please see the updated patch attached incorporating your input and
details below.
On 24/10/2023 18:12, you wrote:
On 20.10.23 16:02, Paul-Antoine Arras wrote:
gcc/fortran/ChangeLog:
* interface.cc (gfc_compare_types): Return true in this situation.
That's
ep 17 00:00:00 2001
From: Paul-Antoine Arras
Date: Fri, 20 Oct 2023 12:42:49 +0200
Subject: [PATCH] Fortran: Fix incompatible types between INTEGER(8) and
TYPE(c_ptr)
In the context of an OpenMP declare variant directive, arguments of type C_PTR
are sometimes recognised as C_PTR in the base f
Le 02/03/2023 à 18:18, Andrew Stubbs a écrit :
On 01/03/2023 16:56, Paul-Antoine Arras wrote:
This patch introduces instruction patterns for conditional min and max
operations (cond_{f|s|u}{max|min}) in the GCN machine description. It
also allows the exec register to be saved in SGPRs to avoid
1cd86b4420d9d42bcde83d0ac52a03a07d4aa819 Mon Sep 17 00:00:00 2001
From: Paul-Antoine Arras
Date: Wed, 1 Mar 2023 17:20:21 +0100
Subject: [PATCH] amdgcn: Add instruction patterns for conditional min/max
operations
gcc/ChangeLog:
* config/gcn/gcn-valu.md (3_exec): Add patterns for
{s|u}{max|min} in QI, HI and DI
1 - 100 of 110 matches
Mail list logo