On 09.12.22 15:44, Jakub Jelinek wrote:
On Tue, Dec 06, 2022 at 08:45:07AM +0100, Tobias Burnus wrote:
[...]
I think we just shouldn't support libgomp plugins for 32-bit libgomp, only
host fallback. If you want offloading, use 64-bit host...
(I concur.)
libgomp: Handle OpenMP's reverse offloads
+ /* Likeverse for the reverse lookup device->host for reverse offload. */
Likewise
+ reverse_splay_tree_node rev_array;
Do we need reverse_splay_tree* stuff in libgomp.h?
As splay_tree_node is just a pointer, perhaps just
struct reverse_splay_tree_node_s;
early and
struct reverse_splay_tree_node_s *rev_array;
in libgomp.h and include the extra splay-tree.h only in target.c?
Unless one needs it anywhere else...
It is used as 'typedef struct reverse_splay_tree_node_s
*reverse_splay_tree_node;' in
struct target_mem_desc {
....
reverse_splay_tree_node rev_array;
}
but also as
struct gomp_device_descr
{
...
struct reverse_splay_tree_s mem_map_rev;
}
The latter is
struct reverse_splay_tree_key_s {
/* Address of the device object. */
uint64_t dev;
splay_tree_key k;
};
which in turn needs 'splay_tree_key'.
Thus, I could either commit it as is – or turn the latter also
into a pointer and malloc it. Currently, it is accessed as
mem_map.k.root = NULL for init and later through the splay-tree
functions indirectly.
Thoughts?
Unless there are further comments, I will later commit it as is.
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 Gesellschaft: München; Registergericht
München, HRB 106955