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

Reply via email to