Oh, and I get compile errors: /mnt/work_store/gcc/gcc.test/libgomp/target.c: In function 'omp_get_interop_type_desc': /mnt/work_store/gcc/gcc.test/libgomp/target.c:5179:30: error: excess elements in scalar initializer [-Werror] 5179 | "const char*", /* fr_name */ | ^~~~~~~~~~~~~ /mnt/work_store/gcc/gcc.test/libgomp/target.c:5179:30: note: (near initialization for 'desc') /mnt/work_store/gcc/gcc.test/libgomp/target.c:5180:30: error: excess elements in scalar initializer [-Werror] 5180 | "int", /* vendor */ | ^~~~~ /mnt/work_store/gcc/gcc.test/libgomp/target.c:5180:30: note: (near initialization for 'desc') /mnt/work_store/gcc/gcc.test/libgomp/target.c:5181:30: error: excess elements in scalar initializer [-Werror] 5181 | "const char *", /* vendor_name */ | ^~~~~~~~~~~~~~ /mnt/work_store/gcc/gcc.test/libgomp/target.c:5181:30: note: (near initialization for 'desc') /mnt/work_store/gcc/gcc.test/libgomp/target.c:5182:30: error: excess elements in scalar initializer [-Werror] 5182 | "int"}; /* device_num */ | ^~~~~ /mnt/work_store/gcc/gcc.test/libgomp/target.c:5182:30: note: (near initialization for 'desc') /mnt/work_store/gcc/gcc.test/libgomp/target.c:5185:21: error: 'fr_id' undeclared (first use in this function) 5185 | if (property_id > fr_id || property_id < omp_ipr_first) | ^~~~~ /mnt/work_store/gcc/gcc.test/libgomp/target.c:5185:21: note: each undeclared identifier is reported only once for each function it appears in /mnt/work_store/gcc/gcc.test/libgomp/target.c:5188:16: error: returning 'char' from a function with return type 'const char *' makes pointer from integer without a cast [-Wint-conversion] 5188 | return desc[omp_ipr_fr_id - property_id]; | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Andre On Fri, 23 Aug 2024 10:28:56 +0200 Andre Vehreschild <ve...@gmx.de> wrote: > Hi Tobias, > > I just had a short look at your PR. Besides that it did not git-am for me (see > below), I have only one question (see also below). Please note, that I have > only user-level experience in OpenMP and can say nothing about completeness or > soundness of your PR. I hope that a first check on overall style motivates a > "pro" to have a more in-depth look. > > So my "ok" is just for style and overall applicability. > > Regards, > Andre > > On Thu, 22 Aug 2024 09:14:58 +0200 > Tobias Burnus <tbur...@baylibre.com> wrote: > > > This is nearly identical to v2, except that I presumably used 'git add > > testsuite' when intending to use 'git add -u testsuite' in a last-minute > > change as it contained a bunch of unrelated test files … > > > > The only other change besides removing unrelated files is that for the > > generic part of omp_get_interop_type_desc, the data types ('int' for > > fr_id, vendor, device_num; const char*' for fr_name, vendor_name) are > > now returned in target.c while the specific types (for device, > > device_context, targetsync platform) will eventually be handled by the > > plugin function. > > > > Tobias > > > > Am 21.08.24 um 20:27 schrieb Tobias Burnus: > > > Nearly identical to v1, except that I realized that OpenMP permits to > > > call those functions also from target regions. > > > > > > Hence, those also got those functions, including a use of > > > omp_irc_other to make clear why it will fail … > > > > > > In addition, two (nonhost) target-region test files were added. > > > > > > Comments, remarks, suggestions before I commit it? > > > Attachment: > > > libgomp: Add interop types and routines to OpenMP's headers and module > > git am did not work for me (sorry for the German): > $ git am interop-1v2a.diff > Wende an: This commit adds OpenMP 5.1+'s interop enumeration, type and routine > /mnt/work_store/gcc/gcc/.git/worktrees/gcc.test/rebase-apply/patch:839: > indent with spaces. "const char*", /* fr_name */ > /mnt/work_store/gcc/gcc/.git/worktrees/gcc.test/rebase-apply/patch:840: > indent with spaces. "int", /* vendor */ > /mnt/work_store/gcc/gcc/.git/worktrees/gcc.test/rebase-apply/patch:841: > indent with spaces. "const char *", /* vendor_name */ > /mnt/work_store/gcc/gcc/.git/worktrees/gcc.test/rebase-apply/patch:842: > indent with spaces. "int"}; /* device_num */ > /mnt/work_store/gcc/gcc/.git/worktrees/gcc.test/rebase-apply/patch:1332: > space before tab in indent. "omp_interop_none")); /* GCC implementation > choice. */ Warnung: 5 Zeilen fügen Whitespace-Fehler hinzu. > Schwerwiegend: Leerer Name in Identifikation (für <>) nicht erlaubt. > > > diff --git a/libgomp/config/gcn/target.c b/libgomp/config/gcn/target.c > > index 9cafea4e2cc..e9141f20ef3 100644 > > --- a/libgomp/config/gcn/target.c > > +++ b/libgomp/config/gcn/target.c > > @@ -185,3 +185,102 @@ GOMP_target_enter_exit_data (int device, size_t > > mapnum, > > <SNIP> > > > +omp_intptr_t > > +omp_get_interop_int (const omp_interop_t interop, > > + omp_interop_property_t property_id, > > + omp_interop_rc_t *ret_code) > > +{ > > + if (property_id < omp_ipr_first || property_id >= 0) > > + *ret_code = omp_irc_out_of_range; > > + else if (interop == omp_interop_none) > > + *ret_code = omp_irc_empty; > > + else > > + *ret_code = omp_irc_other; > > + return 0; > > Do I get this correct, that omp_intptr_t is a pointer to an integer? Would it > not be more intuitive to return nullptr here? > > > +} > > <snipp> > > -- Andre Vehreschild * Email: vehre ad gmx dot de