)]}'
{
  "commit": "cdddaf7fdffa444b108ad1e6c4cea25073f0db4e",
  "tree": "e818018eeb08fe566d211ef84f79f1ac2fa90d73",
  "parents": [
    "d1eb334f7b24ee865601d3ab067e05a86802c4d1"
  ],
  "author": {
    "name": "Andrew Stubbs",
    "email": "ams@codesourcery.com",
    "time": "Mon Jun 20 15:51:15 2022 +0100"
  },
  "committer": {
    "name": "Andrew Stubbs",
    "email": "ams@codesourcery.com",
    "time": "Mon Jun 27 17:28:04 2022 +0100"
  },
  "message": "amdgcn: libgomp plugin USM implementation\n\nImplement the Unified Shared Memory API calls in the GCN plugin.\n\nThe allocate and free are pretty straight-forward because all \"target\" memory\nallocations are compatible with USM, on the right hardware.  However, there\u0027s\nno known way to check what memory region was used, after the fact, so we use a\nsplay tree to record allocations so we can answer \"is_usm_ptr\" later.\n\nlibgomp/ChangeLog:\n\n\t* plugin/plugin-gcn.c (struct usm_splay_tree_key_s): New.\n\t(usm_splay_compare): New.\n\t(splay_tree_prefix): New.\n\t(GOMP_OFFLOAD_usm_alloc): New.\n\t(GOMP_OFFLOAD_usm_free): New.\n\t(GOMP_OFFLOAD_is_usm_ptr): New.\n\t(GOMP_OFFLOAD_supported_features): Move into the OpenMP API fold.\n\tAdd GOMP_REQUIRES_UNIFIED_ADDRESS and\n\tGOMP_REQUIRES_UNIFIED_SHARED_MEMORY.\n\t(gomp_fatal): New.\n\t(splay_tree_c): New.\n\t* testsuite/lib/libgomp.exp (check_effective_target_omp_usm): New.\n\t* testsuite/libgomp.c++/usm-1.C: Use dg-require-effective-target.\n\t* testsuite/libgomp.c-c++-common/requires-1.c: Likewise.\n\t* testsuite/libgomp.c/usm-1.c: Likewise.\n\t* testsuite/libgomp.c/usm-2.c: Likewise.\n\t* testsuite/libgomp.c/usm-3.c: Likewise.\n\t* testsuite/libgomp.c/usm-4.c: Likewise.\n\t* testsuite/libgomp.c/usm-5.c: Likewise.\n\t* testsuite/libgomp.c/usm-6.c: Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "969683ea1d28c506cdc9525cee0fcc045479bb9e",
      "old_mode": 33188,
      "old_path": "libgomp/plugin/plugin-gcn.c",
      "new_id": "f0af1d341c6576c193f575c7b4a8cef0c51d60fc",
      "new_mode": 33188,
      "new_path": "libgomp/plugin/plugin-gcn.c"
    },
    {
      "type": "modify",
      "old_id": "83d130769af7e24f736b404e01553a0711e52d16",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/lib/libgomp.exp",
      "new_id": "d93411bd79974b25e657a8cd28a2c3d923df1ec0",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/lib/libgomp.exp"
    },
    {
      "type": "modify",
      "old_id": "fea25e5f10b174accf0663bcf1a8ec76cdb39b47",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c++/usm-1.C",
      "new_id": "6e88f90d61fdec4846ba70e7de5ca79a7bfc52ad",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c++/usm-1.C"
    },
    {
      "type": "modify",
      "old_id": "02585adfb6fdad8d65a7a146552cbe16c8658cd9",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c-c++-common/requires-1.c",
      "new_id": "0dd40bc0f59ea427af7043579cf64f9347f92726",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c-c++-common/requires-1.c"
    },
    {
      "type": "modify",
      "old_id": "1b35f19c45b19f256415424517de8aef6ba89343",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c/usm-1.c",
      "new_id": "e73f1816f9ac6a6e61da111856c89e191fc8e0f3",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c/usm-1.c"
    },
    {
      "type": "modify",
      "old_id": "689cee7e4568d10b3e063115fe178cf945faa14f",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c/usm-2.c",
      "new_id": "31f2bae7145f6229553daa157354941c5b48465e",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c/usm-2.c"
    },
    {
      "type": "modify",
      "old_id": "2ca66afe93f3581b7a18d6a33b4f935e4aaba5c7",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c/usm-3.c",
      "new_id": "2c78a0d8ced0b807251bbd1ffb5c3da231da6322",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c/usm-3.c"
    },
    {
      "type": "modify",
      "old_id": "753908c84409f326d560d3c45d1872fc597867bc",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c/usm-4.c",
      "new_id": "1ac5498f73f9f50fbd43ad896c06637eb9451ad4",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c/usm-4.c"
    },
    {
      "type": "modify",
      "old_id": "4d8b3cf71b1c29ae3df2d64fcb52c46c5a95a45c",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c/usm-5.c",
      "new_id": "563397f941a6dd47090866854f4c6d1e3041b945",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c/usm-5.c"
    },
    {
      "type": "modify",
      "old_id": "c207140092a7f0537b203b67c352506c9e27e8d1",
      "old_mode": 33188,
      "old_path": "libgomp/testsuite/libgomp.c/usm-6.c",
      "new_id": "bd14f8197b3e18f547e921b45edaab23df8a1131",
      "new_mode": 33188,
      "new_path": "libgomp/testsuite/libgomp.c/usm-6.c"
    }
  ]
}
