Hi! In addition to the technical issues pointed out by Jakub for this og12 commit:
On 2022-07-12T15:16:35+0100, Andrew Stubbs <a...@codesourcery.com> wrote: > This patch [...] > I will commit a backport to OG12 shortly. > openmp: fix max_vf setting for amdgcn offloading > --- a/gcc/omp-general.h > +++ b/gcc/omp-general.h > extern poly_uint64 omp_max_vf (void); > extern int omp_max_simt_vf (void); > +extern int omp_max_simd_vf (void); > --- a/gcc/omp-low.cc > +++ b/gcc/omp-low.cc > @@ -4646,7 +4646,14 @@ lower_rec_simd_input_clauses (tree new_var, > omp_context *ctx, > { > if (known_eq (sctx->max_vf, 0U)) > { > - sctx->max_vf = sctx->is_simt ? omp_max_simt_vf () : omp_max_vf (); > + /* If we are compiling for multiple devices choose the largest VF. */ > + sctx->max_vf = omp_max_vf (); > + if (omp_maybe_offloaded_ctx (ctx)) > + { > + if (sctx->is_simt) > + sctx->max_vf = ordered_max (sctx->max_vf, omp_max_simt_vf ()); > + sctx->max_vf = ordered_max (sctx->max_vf, omp_max_simd_vf ()); > + } > if (maybe_gt (sctx->max_vf, 1U)) > { > tree c = omp_find_clause (gimple_omp_for_clauses (ctx->stmt), ... I've additionally run into a bootstrap error, and have now pushed "Resolve '-Wsign-compare' issue in 'gcc/omp-low.cc:lower_rec_simd_input_clauses'" to devel/omp/gcc-12 in commit 4e32d1582a137d5f34248fdd3e93d35a798f5221, see attached. Grüße Thomas ----------------- 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 Gesellschaft: München; Registergericht München, HRB 106955
>From 4e32d1582a137d5f34248fdd3e93d35a798f5221 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 25 Oct 2022 09:45:31 +0200 Subject: [PATCH 1/2] Resolve '-Wsign-compare' issue in 'gcc/omp-low.cc:lower_rec_simd_input_clauses' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ..., introduced in og12 commit 55722a87dd223149dcd41ca9c8eba16ad5b3eddc "openmp: fix max_vf setting for amdgcn offloading": In file included from [...]/source-gcc/gcc/coretypes.h:482, from [...]/source-gcc/gcc/omp-low.cc:27: [...]/source-gcc/gcc/poly-int.h: In instantiation of ‘typename if_nonpoly<Ca, bool>::type maybe_lt(const Ca&, const poly_int_pod<N, Cb>&) [with unsigned int N = 1; Ca = int; Cb = long unsigned int; typename if_nonpoly<Ca, bool>::type = bool]’: [...]/source-gcc/gcc/poly-int.h:1510:7: required from ‘poly_int<N, typename poly_result<Ca, typename if_nonpoly<Cb>::type>::type> ordered_max(const poly_int_pod<N, C>&, const Cb&) [with unsigned int N = 1; Ca = long unsigned int; Cb = int; typename poly_result<Ca, typename if_nonpoly<Cb>::type>::type = long unsigned int; typename if_nonpoly<Cb>::type = int]’ [...]/source-gcc/gcc/omp-low.cc:5180:33: required from here [...]/source-gcc/gcc/poly-int.h:1384:12: error: comparison of integer expressions of different signedness: ‘const int’ and ‘const long unsigned int’ [-Werror=sign-compare] 1384 | return a < b.coeffs[0]; | ~~^~~~~~~~~~~ [...]/source-gcc/gcc/poly-int.h: In instantiation of ‘typename if_nonpoly<Cb, bool>::type maybe_lt(const poly_int_pod<N, C>&, const Cb&) [with unsigned int N = 1; Ca = long unsigned int; Cb = int; typename if_nonpoly<Cb, bool>::type = bool]’: [...]/source-gcc/gcc/poly-int.h:1515:2: required from ‘poly_int<N, typename poly_result<Ca, typename if_nonpoly<Cb>::type>::type> ordered_max(const poly_int_pod<N, C>&, const Cb&) [with unsigned int N = 1; Ca = long unsigned int; Cb = int; typename poly_result<Ca, typename if_nonpoly<Cb>::type>::type = long unsigned int; typename if_nonpoly<Cb>::type = int]’ [...]/source-gcc/gcc/omp-low.cc:5180:33: required from here [...]/source-gcc/gcc/poly-int.h:1373:22: error: comparison of integer expressions of different signedness: ‘const long unsigned int’ and ‘const int’ [-Werror=sign-compare] 1373 | return a.coeffs[0] < b; | ~~~~~~~~~~~~^~~ gcc/ * omp-low.cc (lower_rec_simd_input_clauses): For 'ordered_max', cast 'omp_max_simt_vf ()', 'omp_max_simd_vf ()' to 'unsigned'. --- gcc/omp-low.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc index b5b2681b654..002f91d930a 100644 --- a/gcc/omp-low.cc +++ b/gcc/omp-low.cc @@ -5177,8 +5177,8 @@ lower_rec_simd_input_clauses (tree new_var, omp_context *ctx, if (omp_maybe_offloaded_ctx (ctx)) { if (sctx->is_simt) - sctx->max_vf = ordered_max (sctx->max_vf, omp_max_simt_vf ()); - sctx->max_vf = ordered_max (sctx->max_vf, omp_max_simd_vf ()); + sctx->max_vf = ordered_max (sctx->max_vf, (unsigned) omp_max_simt_vf ()); + sctx->max_vf = ordered_max (sctx->max_vf, (unsigned) omp_max_simd_vf ()); } if (maybe_gt (sctx->max_vf, 1U)) { -- 2.35.1
>From 1c5087dfff64c40505bcb81b5069781a44bb0b4d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Fri, 28 Oct 2022 09:55:22 +0200 Subject: [PATCH 2/2] Resolve '-Wsign-compare' issue in 'gcc/omp-low.cc:lower_rec_simd_input_clauses': ChangeLog ... forgotten in og12 commit 4e32d1582a137d5f34248fdd3e93d35a798f5221 "Resolve '-Wsign-compare' issue in 'gcc/omp-low.cc:lower_rec_simd_input_clauses'". --- gcc/ChangeLog.omp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index 53cbfbab603..4bf521f2162 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,8 @@ +2022-10-28 Thomas Schwinge <tho...@codesourcery.com> + + * omp-low.cc (lower_rec_simd_input_clauses): For 'ordered_max', + cast 'omp_max_simt_vf ()', 'omp_max_simd_vf ()' to 'unsigned'. + 2022-10-25 Abid Qadeer <ab...@codesourcery.com> * omp-low.cc (usm_transform): Handle operator new with alignment. -- 2.35.1