)]}' { "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" } ] }