[llvm] [openmp] [OpenMP][Offload] Support standalone build (PR #88957)

via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 17 06:04:09 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-amdgpu

Author: Saiyedul Islam (saiislam)

<details>
<summary>Changes</summary>

Moved some of the common functionality in a top-level common
cmake module and fixed path and inclusion issues.

Depends on https://github.com/llvm/llvm-project/pull/75125

---

Patch is 121.46 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/88957.diff


355 Files Affected:

- (added) cmake/Modules/OffloadOpenmpCommon.cmake (+68) 
- (modified) llvm/CMakeLists.txt (+1-1) 
- (renamed) offload/CMakeLists.txt (+130-9) 
- (renamed) offload/DeviceRTL/CMakeLists.txt (+2-2) 
- (renamed) offload/DeviceRTL/include/Allocator.h () 
- (renamed) offload/DeviceRTL/include/Configuration.h () 
- (renamed) offload/DeviceRTL/include/Debug.h () 
- (renamed) offload/DeviceRTL/include/Interface.h () 
- (renamed) offload/DeviceRTL/include/LibC.h () 
- (renamed) offload/DeviceRTL/include/Mapping.h () 
- (renamed) offload/DeviceRTL/include/State.h () 
- (renamed) offload/DeviceRTL/include/Synchronization.h () 
- (renamed) offload/DeviceRTL/include/Types.h () 
- (renamed) offload/DeviceRTL/include/Utils.h () 
- (renamed) offload/DeviceRTL/include/generated_microtask_cases.gen () 
- (renamed) offload/DeviceRTL/src/Allocator.cpp () 
- (renamed) offload/DeviceRTL/src/Configuration.cpp () 
- (renamed) offload/DeviceRTL/src/Debug.cpp () 
- (renamed) offload/DeviceRTL/src/Kernel.cpp () 
- (renamed) offload/DeviceRTL/src/LibC.cpp () 
- (renamed) offload/DeviceRTL/src/Mapping.cpp () 
- (renamed) offload/DeviceRTL/src/Misc.cpp () 
- (renamed) offload/DeviceRTL/src/Parallelism.cpp () 
- (renamed) offload/DeviceRTL/src/Reduction.cpp () 
- (renamed) offload/DeviceRTL/src/State.cpp () 
- (renamed) offload/DeviceRTL/src/Stub.cpp () 
- (renamed) offload/DeviceRTL/src/Synchronization.cpp () 
- (renamed) offload/DeviceRTL/src/Tasking.cpp () 
- (renamed) offload/DeviceRTL/src/Utils.cpp () 
- (renamed) offload/DeviceRTL/src/Workshare.cpp () 
- (renamed) offload/DeviceRTL/src/exports () 
- (renamed) offload/README.txt () 
- (renamed) offload/cmake/Modules/LibomptargetGetDependencies.cmake () 
- (renamed) offload/cmake/Modules/LibomptargetUtils.cmake () 
- (added) offload/cmake/OpenMPTesting.cmake (+238) 
- (renamed) offload/docs/declare_target_indirect.md () 
- (renamed) offload/include/DeviceImage.h () 
- (renamed) offload/include/ExclusiveAccess.h () 
- (renamed) offload/include/OffloadEntry.h () 
- (renamed) offload/include/OffloadPolicy.h () 
- (renamed) offload/include/OpenMP/InternalTypes.h () 
- (renamed) offload/include/OpenMP/InteropAPI.h () 
- (renamed) offload/include/OpenMP/Mapping.h () 
- (renamed) offload/include/OpenMP/OMPT/Callback.h () 
- (renamed) offload/include/OpenMP/OMPT/Connector.h () 
- (renamed) offload/include/OpenMP/OMPT/Interface.h () 
- (renamed) offload/include/OpenMP/omp.h () 
- (renamed) offload/include/PluginManager.h () 
- (renamed) offload/include/Shared/APITypes.h () 
- (renamed) offload/include/Shared/Debug.h () 
- (renamed) offload/include/Shared/Environment.h () 
- (renamed) offload/include/Shared/EnvironmentVar.h () 
- (renamed) offload/include/Shared/PluginAPI.h () 
- (renamed) offload/include/Shared/PluginAPI.inc () 
- (renamed) offload/include/Shared/Profile.h () 
- (renamed) offload/include/Shared/Requirements.h () 
- (renamed) offload/include/Shared/SourceInfo.h () 
- (renamed) offload/include/Shared/Utils.h () 
- (renamed) offload/include/Utils/ExponentialBackoff.h () 
- (renamed) offload/include/device.h () 
- (renamed) offload/include/omptarget.h () 
- (renamed) offload/include/rtl.h () 
- (renamed) offload/plugins-nextgen/CMakeLists.txt () 
- (renamed) offload/plugins-nextgen/amdgpu/CMakeLists.txt (+1-1) 
- (renamed) offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.cpp () 
- (renamed) offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa.h () 
- (renamed) offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h () 
- (renamed) offload/plugins-nextgen/amdgpu/src/rtl.cpp () 
- (renamed) offload/plugins-nextgen/amdgpu/utils/UtilitiesRTL.h () 
- (renamed) offload/plugins-nextgen/common/CMakeLists.txt () 
- (renamed) offload/plugins-nextgen/common/OMPT/OmptCallback.cpp () 
- (renamed) offload/plugins-nextgen/common/include/DLWrap.h () 
- (renamed) offload/plugins-nextgen/common/include/GlobalHandler.h () 
- (renamed) offload/plugins-nextgen/common/include/JIT.h () 
- (renamed) offload/plugins-nextgen/common/include/MemoryManager.h () 
- (renamed) offload/plugins-nextgen/common/include/PluginInterface.h () 
- (renamed) offload/plugins-nextgen/common/include/RPC.h () 
- (renamed) offload/plugins-nextgen/common/include/Utils/ELF.h () 
- (renamed) offload/plugins-nextgen/common/src/GlobalHandler.cpp () 
- (renamed) offload/plugins-nextgen/common/src/JIT.cpp () 
- (renamed) offload/plugins-nextgen/common/src/PluginInterface.cpp () 
- (renamed) offload/plugins-nextgen/common/src/RPC.cpp () 
- (renamed) offload/plugins-nextgen/common/src/Utils/ELF.cpp () 
- (renamed) offload/plugins-nextgen/cuda/CMakeLists.txt (+1-1) 
- (renamed) offload/plugins-nextgen/cuda/dynamic_cuda/cuda.cpp () 
- (renamed) offload/plugins-nextgen/cuda/dynamic_cuda/cuda.h () 
- (renamed) offload/plugins-nextgen/cuda/src/rtl.cpp () 
- (renamed) offload/plugins-nextgen/exports () 
- (renamed) offload/plugins-nextgen/host/CMakeLists.txt (+1-1) 
- (renamed) offload/plugins-nextgen/host/dynamic_ffi/ffi.cpp () 
- (renamed) offload/plugins-nextgen/host/dynamic_ffi/ffi.h () 
- (renamed) offload/plugins-nextgen/host/src/rtl.cpp () 
- (renamed) offload/src/CMakeLists.txt (+8-2) 
- (renamed) offload/src/DeviceImage.cpp () 
- (renamed) offload/src/LegacyAPI.cpp () 
- (renamed) offload/src/OffloadRTL.cpp () 
- (renamed) offload/src/OpenMP/API.cpp () 
- (renamed) offload/src/OpenMP/InteropAPI.cpp () 
- (renamed) offload/src/OpenMP/Mapping.cpp () 
- (renamed) offload/src/OpenMP/OMPT/Callback.cpp () 
- (renamed) offload/src/PluginManager.cpp () 
- (renamed) offload/src/device.cpp () 
- (renamed) offload/src/exports () 
- (renamed) offload/src/interface.cpp () 
- (renamed) offload/src/omptarget.cpp () 
- (renamed) offload/src/private.h () 
- (renamed) offload/test/CMakeLists.txt (+11-4) 
- (renamed) offload/test/Inputs/basic_array.f90 () 
- (renamed) offload/test/Inputs/declare_indirect_func.c () 
- (renamed) offload/test/api/assert.c () 
- (renamed) offload/test/api/is_initial_device.c () 
- (renamed) offload/test/api/omp_device_managed_memory.c () 
- (renamed) offload/test/api/omp_device_managed_memory_alloc.c () 
- (renamed) offload/test/api/omp_device_memory.c () 
- (renamed) offload/test/api/omp_dynamic_shared_memory.c () 
- (renamed) offload/test/api/omp_dynamic_shared_memory_amdgpu.c () 
- (renamed) offload/test/api/omp_dynamic_shared_memory_mixed.inc () 
- (renamed) offload/test/api/omp_dynamic_shared_memory_mixed_amdgpu.c () 
- (renamed) offload/test/api/omp_dynamic_shared_memory_mixed_nvptx.c () 
- (renamed) offload/test/api/omp_env_vars.c () 
- (renamed) offload/test/api/omp_get_device_num.c () 
- (renamed) offload/test/api/omp_get_mapped_ptr.c () 
- (renamed) offload/test/api/omp_get_num_devices.c () 
- (renamed) offload/test/api/omp_get_num_devices_with_empty_target.c () 
- (renamed) offload/test/api/omp_get_num_procs.c () 
- (renamed) offload/test/api/omp_host_pinned_memory.c () 
- (renamed) offload/test/api/omp_host_pinned_memory_alloc.c () 
- (renamed) offload/test/api/omp_indirect_call.c () 
- (renamed) offload/test/api/omp_target_memcpy_async1.c () 
- (renamed) offload/test/api/omp_target_memcpy_async2.c () 
- (renamed) offload/test/api/omp_target_memcpy_rect_async1.c () 
- (renamed) offload/test/api/omp_target_memcpy_rect_async2.c () 
- (renamed) offload/test/api/omp_target_memset.c () 
- (renamed) offload/test/api/ompx_3d.c () 
- (renamed) offload/test/api/ompx_3d.cpp () 
- (renamed) offload/test/api/ompx_sync.c () 
- (renamed) offload/test/api/ompx_sync.cpp () 
- (renamed) offload/test/env/base_ptr_ref_count.c () 
- (renamed) offload/test/env/omp_target_debug.c () 
- (renamed) offload/test/jit/empty_kernel.inc () 
- (renamed) offload/test/jit/empty_kernel_lvl1.c () 
- (renamed) offload/test/jit/empty_kernel_lvl2.c () 
- (renamed) offload/test/jit/type_punning.c () 
- (renamed) offload/test/libc/assert.c () 
- (renamed) offload/test/libc/fwrite.c () 
- (renamed) offload/test/libc/global_ctor_dtor.cpp () 
- (renamed) offload/test/libc/host_call.c () 
- (renamed) offload/test/libc/malloc.c () 
- (renamed) offload/test/libc/puts.c () 
- (renamed) offload/test/lit.cfg () 
- (renamed) offload/test/lit.site.cfg.in () 
- (renamed) offload/test/mapping/alloc_fail.c () 
- (renamed) offload/test/mapping/array_section_implicit_capture.c () 
- (renamed) offload/test/mapping/array_section_use_device_ptr.c () 
- (renamed) offload/test/mapping/auto_zero_copy.cpp () 
- (renamed) offload/test/mapping/auto_zero_copy_apu.cpp () 
- (renamed) offload/test/mapping/auto_zero_copy_globals.cpp () 
- (renamed) offload/test/mapping/data_absent_at_exit.c () 
- (renamed) offload/test/mapping/data_member_ref.cpp () 
- (renamed) offload/test/mapping/declare_mapper_api.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_default_mappers.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_default_mappers_array.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_default_mappers_array_subscript.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_default_mappers_complex_structure.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_default_mappers_ptr_subscript.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_default_mappers_var.cpp () 
- (renamed) offload/test/mapping/declare_mapper_nested_mappers.cpp () 
- (renamed) offload/test/mapping/declare_mapper_target.cpp () 
- (renamed) offload/test/mapping/declare_mapper_target_data.cpp () 
- (renamed) offload/test/mapping/declare_mapper_target_data_enter_exit.cpp () 
- (renamed) offload/test/mapping/declare_mapper_target_update.cpp () 
- (renamed) offload/test/mapping/delete_inf_refcount.c () 
- (renamed) offload/test/mapping/device_ptr_update.c () 
- (renamed) offload/test/mapping/firstprivate_aligned.cpp () 
- (renamed) offload/test/mapping/has_device_addr.cpp () 
- (renamed) offload/test/mapping/implicit_device_ptr.c () 
- (renamed) offload/test/mapping/is_device_ptr.cpp () 
- (renamed) offload/test/mapping/lambda_by_value.cpp () 
- (renamed) offload/test/mapping/lambda_mapping.cpp () 
- (renamed) offload/test/mapping/low_alignment.c () 
- (renamed) offload/test/mapping/map_back_race.cpp () 
- (renamed) offload/test/mapping/ompx_hold/omp_target_disassociate_ptr.c () 
- (renamed) offload/test/mapping/ompx_hold/struct.c () 
- (renamed) offload/test/mapping/ompx_hold/target-data.c () 
- (renamed) offload/test/mapping/ompx_hold/target.c () 
- (renamed) offload/test/mapping/padding_not_mapped.c () 
- (renamed) offload/test/mapping/power_of_two_alignment.c () 
- (renamed) offload/test/mapping/pr38704.c () 
- (renamed) offload/test/mapping/prelock.cpp () 
- (renamed) offload/test/mapping/present/target.c () 
- (renamed) offload/test/mapping/present/target_array_extension.c () 
- (renamed) offload/test/mapping/present/target_data.c () 
- (renamed) offload/test/mapping/present/target_data_array_extension.c () 
- (renamed) offload/test/mapping/present/target_data_at_exit.c () 
- (renamed) offload/test/mapping/present/target_enter_data.c () 
- (renamed) offload/test/mapping/present/target_exit_data_delete.c () 
- (renamed) offload/test/mapping/present/target_exit_data_release.c () 
- (renamed) offload/test/mapping/present/target_update.c () 
- (renamed) offload/test/mapping/present/target_update_array_extension.c () 
- (renamed) offload/test/mapping/present/unified_shared_memory.c () 
- (renamed) offload/test/mapping/present/zero_length_array_section.c () 
- (renamed) offload/test/mapping/present/zero_length_array_section_exit.c () 
- (renamed) offload/test/mapping/private_mapping.c () 
- (renamed) offload/test/mapping/ptr_and_obj_motion.c () 
- (renamed) offload/test/mapping/reduction_implicit_map.cpp () 
- (renamed) offload/test/mapping/target_data_array_extension_at_exit.c () 
- (renamed) offload/test/mapping/target_derefence_array_pointrs.cpp () 
- (renamed) offload/test/mapping/target_has_device_addr.c () 
- (renamed) offload/test/mapping/target_implicit_partial_map.c () 
- (renamed) offload/test/mapping/target_map_for_member_data.cpp () 
- (renamed) offload/test/mapping/target_pointers_members_map.cpp () 
- (renamed) offload/test/mapping/target_update_array_extension.c () 
- (renamed) offload/test/mapping/target_use_device_addr.c () 
- (renamed) offload/test/mapping/target_uses_allocator.c () 
- (renamed) offload/test/mapping/target_wrong_use_device_addr.c () 
- (renamed) offload/test/offloading/assert.cpp () 
- (renamed) offload/test/offloading/atomic-compare-signedness.c () 
- (renamed) offload/test/offloading/back2back_distribute.c () 
- (renamed) offload/test/offloading/barrier_fence.c () 
- (renamed) offload/test/offloading/bug47654.cpp () 
- (renamed) offload/test/offloading/bug49021.cpp () 
- (renamed) offload/test/offloading/bug49334.cpp () 
- (renamed) offload/test/offloading/bug49779.cpp () 
- (renamed) offload/test/offloading/bug50022.cpp () 
- (renamed) offload/test/offloading/bug51781.c () 
- (renamed) offload/test/offloading/bug51982.c () 
- (renamed) offload/test/offloading/bug53727.cpp () 
- (renamed) offload/test/offloading/bug64959.c () 
- (renamed) offload/test/offloading/bug64959_compile_only.c () 
- (renamed) offload/test/offloading/bug74582.c () 
- (renamed) offload/test/offloading/complex_reduction.cpp () 
- (renamed) offload/test/offloading/ctor_dtor.cpp () 
- (renamed) offload/test/offloading/cuda_no_devices.c () 
- (renamed) offload/test/offloading/d2d_memcpy.c () 
- (renamed) offload/test/offloading/d2d_memcpy_sync.c () 
- (renamed) offload/test/offloading/default_thread_limit.c () 
- (renamed) offload/test/offloading/dynamic_module.c () 
- (renamed) offload/test/offloading/dynamic_module_load.c () 
- (renamed) offload/test/offloading/extern.c () 
- (renamed) offload/test/offloading/force-usm.cpp () 
- (renamed) offload/test/offloading/fortran/basic-target-parallel-do.f90 () 
- (renamed) offload/test/offloading/fortran/basic-target-parallel-region.f90 () 
- (renamed) offload/test/offloading/fortran/basic-target-region-1D-array-section.f90 () 
- (renamed) offload/test/offloading/fortran/basic-target-region-3D-array-section.f90 () 
- (renamed) offload/test/offloading/fortran/basic-target-region-3D-array.f90 () 
- (renamed) offload/test/offloading/fortran/basic_array.c () 
- (renamed) offload/test/offloading/fortran/basic_target_region.f90 () 
- (renamed) offload/test/offloading/fortran/constant-arr-index.f90 () 
- (renamed) offload/test/offloading/fortran/declare-target-vars-in-target-region.f90 () 
- (renamed) offload/test/offloading/fortran/double-target-call-with-declare-target.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-allocatable-array-section-1d-bounds.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-allocatable-array-section-3d-bounds.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-allocatable-map-scopes.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-enter-exit-allocatables.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-enter-exit-array-2.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-enter-exit-array-bounds.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-enter-exit-array.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-enter-exit-scalar.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-pointer-scopes-enter-exit.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-pointer-target-array-section-3d-bounds.f90 () 
- (renamed) offload/test/offloading/fortran/target-map-pointer-target-scopes.f90 () 
- (renamed) offload/test/offloading/fortran/target-nested-target-data.f90 () 
- (renamed) offload/test/offloading/fortran/target-parallel-do-collapse.f90 () 
- (renamed) offload/test/offloading/fortran/target-region-implicit-array.f90 () 
- (renamed) offload/test/offloading/fortran/target_map_common_block.f90 () 
- (renamed) offload/test/offloading/fortran/target_map_common_block1.f90 () 
- (renamed) offload/test/offloading/fortran/target_map_common_block2.f90 () 
- (renamed) offload/test/offloading/fortran/target_update.f90 () 
- (renamed) offload/test/offloading/generic_multiple_parallel_regions.c () 
- (renamed) offload/test/offloading/global_constructor.cpp () 
- (renamed) offload/test/offloading/host_as_target.c () 
- (renamed) offload/test/offloading/indirect_fp_mapping.c () 
- (renamed) offload/test/offloading/info.c () 
- (renamed) offload/test/offloading/interop.c () 
- (renamed) offload/test/offloading/lone_target_exit_data.c () 
- (renamed) offload/test/offloading/looptripcnt.c () 
- (renamed) offload/test/offloading/malloc.c () 
- (renamed) offload/test/offloading/malloc_parallel.c () 
- (renamed) offload/test/offloading/mandatory_but_no_devices.c () 
- (renamed) offload/test/offloading/memory_manager.cpp () 
- (renamed) offload/test/offloading/multiple_reductions_simple.c () 
- (renamed) offload/test/offloading/non_contiguous_update.cpp () 
- (renamed) offload/test/offloading/offloading_success.c () 
- (renamed) offload/test/offloading/offloading_success.cpp () 
- (renamed) offload/test/offloading/ompx_bare.c () 
- (renamed) offload/test/offloading/ompx_coords.c () 
- (renamed) offload/test/offloading/ompx_saxpy_mixed.c () 
- (renamed) offload/test/offloading/parallel_offloading_map.cpp () 
- (renamed) offload/test/offloading/parallel_target_teams_reduction.cpp () 
- (renamed) offload/test/offloading/parallel_target_teams_reduction_max.cpp () 
- (renamed) offload/test/offloading/parallel_target_teams_reduction_min.cpp () 
- (renamed) offload/test/offloading/requires.c () 
- (renamed) offload/test/offloading/runtime_init.c () 
- (renamed) offload/test/offloading/shared_lib_fp_mapping.c () 
- (renamed) offload/test/offloading/small_trip_count.c () 
- (renamed) offload/test/offloading/small_trip_count_thread_limit.cpp () 
- (renamed) offload/test/offloading/spmdization.c () 
- (renamed) offload/test/offloading/static_linking.c () 
- (renamed) offload/test/offloading/std_complex_arithmetic.cpp () 
- (renamed) offload/test/offloading/struct_mapping_with_pointers.cpp () 
- (renamed) offload/test/offloading/target-teams-atomic.c () 
- (renamed) offload/test/offloading/target-tile.c () 
- (renamed) offload/test/offloading/target_constexpr_mapping.cpp () 
- (renamed) offload/test/offloading/target_critical_region.cpp () 
- (renamed) offload/test/offloading/target_depend_nowait.cpp () 
- (renamed) offload/test/offloading/target_map_for_member_data.cpp () 
- (renamed) offload/test/offloading/target_nowait_target.cpp () 
- (renamed) offload/test/offloading/task_in_reduction_target.c () 
- (renamed) offload/test/offloading/taskloop_offload_nowait.cpp () 
- (renamed) offload/test/offloading/test_libc.cpp () 
- (renamed) offload/test/offloading/thread_limit.c () 
- (renamed) offload/test/offloading/thread_state_1.c () 
- (renamed) offload/test/offloading/thread_state_2.c () 
- (renamed) offload/test/offloading/weak.c () 
- (renamed) offload/test/offloading/workshare_chunk.c () 
- (renamed) offload/test/offloading/wtime.c () 
- (renamed) offload/test/ompt/callbacks.h () 
- (renamed) offload/test/ompt/register_both.h () 
- (renamed) offload/test/ompt/register_emi.h () 
- (renamed) offload/test/ompt/register_emi_map.h () 
- (renamed) offload/test/ompt/register_no_device_init.h () 
- (renamed) offload/test/ompt/register_non_emi.h () 
- (renamed) offload/test/ompt/register_non_emi_map.h () 
- (renamed) offload/test/ompt/register_wrong_return.h () 
- (renamed) offload/test/ompt/target_memcpy.c () 
- (renamed) offload/test/ompt/target_memcpy_emi.c () 
- (renamed) offload/test/ompt/veccopy.c () 
- (renamed) offload/test/ompt/veccopy_data.c () 
- (renamed) offload/test/ompt/veccopy_disallow_both.c () 
- (renamed) offload/test/ompt/veccopy_emi.c () 
- (renamed) offload/test/ompt/veccopy_emi_map.c () 
- (renamed) offload/test/ompt/veccopy_map.c () 
- (renamed) offload/test/ompt/veccopy_no_device_init.c () 
- (renamed) offload/test/ompt/veccopy_wrong_return.c () 
- (renamed) offload/test/unified_shared_memory/api.c () 
- (renamed) offload/test/unified_shared_memory/associate_ptr.c () 
- (renamed) offload/test/unified_shared_memory/close_enter_exit.c () 
- (renamed) offload/test/unified_shared_memory/close_manual.c () 
- (renamed) offload/test/unified_shared_memory/close_member.c () 
- (renamed) offload/test/unified_shared_memory/close_modifier.c () 
- (renamed) offload/test/unified_shared_memory/shared_update.c () 
- (renamed) offload/tools/CMakeLists.txt () 


``````````diff
diff --git a/cmake/Modules/OffloadOpenmpCommon.cmake b/cmake/Modules/OffloadOpenmpCommon.cmake
new file mode 100644
index 00000000000000..b4e1737e7ef78c
--- /dev/null
+++ b/cmake/Modules/OffloadOpenmpCommon.cmake
@@ -0,0 +1,68 @@
+# Check if OMPT support is available
+# Currently, __builtin_frame_address() is required for OMPT
+# Weak attribute is required for Unices (except Darwin), LIBPSAPI is used for Windows
+if(NOT LIBOMP_ARCH)
+  include(LibompGetArchitecture)
+  libomp_get_architecture(LIBOMP_DETECTED_ARCH)
+  set(LIBOMP_ARCH ${LIBOMP_DETECTED_ARCH})
+endif()
+
+check_c_source_compiles("int main(int argc, char** argv) {
+  void* p = __builtin_frame_address(0);
+  return 0;}" LIBOMP_HAVE___BUILTIN_FRAME_ADDRESS)
+check_c_source_compiles("__attribute__ ((weak)) int foo(int a) { return a*a; }
+  int main(int argc, char** argv) {
+  return foo(argc);}" LIBOMP_HAVE_WEAK_ATTRIBUTE)
+set(CMAKE_REQUIRED_LIBRARIES psapi)
+check_c_source_compiles("#include <windows.h>
+  #include <psapi.h>
+  int main(int artc, char** argv) {
+    return EnumProcessModules(NULL, NULL, 0, NULL);
+  }" LIBOMP_HAVE_PSAPI)
+set(CMAKE_REQUIRED_LIBRARIES)
+if(NOT LIBOMP_HAVE___BUILTIN_FRAME_ADDRESS)
+  set(LIBOMP_HAVE_OMPT_SUPPORT FALSE)
+else()
+  if( # hardware architecture supported?
+     ((LIBOMP_ARCH STREQUAL x86_64) OR
+      (LIBOMP_ARCH STREQUAL i386) OR
+#      (LIBOMP_ARCH STREQUAL arm) OR
+      (LIBOMP_ARCH STREQUAL aarch64) OR
+      (LIBOMP_ARCH STREQUAL aarch64_32) OR
+      (LIBOMP_ARCH STREQUAL aarch64_a64fx) OR
+      (LIBOMP_ARCH STREQUAL ppc64le) OR
+      (LIBOMP_ARCH STREQUAL ppc64) OR
+      (LIBOMP_ARCH STREQUAL riscv64) OR
+      (LIBOMP_ARCH STREQUAL loongarch64) OR
+      (LIBOMP_ARCH STREQUAL s390x))
+     AND # OS supported?
+     ((WIN32 AND LIBOMP_HAVE_PSAPI) OR APPLE OR
+      (NOT (WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "AIX") AND LIBOMP_HAVE_WEAK_ATTRIBUTE)))
+    set(LIBOMP_HAVE_OMPT_SUPPORT TRUE)
+  else()
+    set(LIBOMP_HAVE_OMPT_SUPPORT FALSE)
+  endif()
+endif()
+
+# OMPT-support defaults to ON for OpenMP 5.0+ and if the requirements in
+# cmake/config-ix.cmake are fulfilled.
+set(OMPT_DEFAULT FALSE)
+if ((LIBOMP_HAVE_OMPT_SUPPORT) AND (NOT WIN32))
+  set(OMPT_DEFAULT TRUE)
+endif()
+set(LIBOMP_OMPT_SUPPORT ${OMPT_DEFAULT} CACHE BOOL
+  "OMPT-support?")
+
+# Check LIBOMP_HAVE_VERSION_SCRIPT_FLAG
+include(LLVMCheckCompilerLinkerFlag)
+if(NOT APPLE)
+  llvm_check_compiler_linker_flag(C "-Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/../../openmp/runtime/src/exports_test_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
+endif()
+
+macro(pythonize_bool var)
+if (${var})
+  set(${var} True)
+else()
+  set(${var} False)
+endif()
+endmacro()
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 6f5647d70d8bc1..f9b953185d3e01 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -147,7 +147,7 @@ endif()
 # As we migrate runtimes to using the bootstrapping build, the set of default runtimes
 # should grow as we remove those runtimes from LLVM_ENABLE_PROJECTS above.
 set(LLVM_DEFAULT_RUNTIMES "libcxx;libcxxabi;libunwind")
-set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc")
+set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc;offload")
 set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
   "Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")
 if(LLVM_ENABLE_RUNTIMES STREQUAL "all")
diff --git a/openmp/libomptarget/CMakeLists.txt b/offload/CMakeLists.txt
similarity index 59%
rename from openmp/libomptarget/CMakeLists.txt
rename to offload/CMakeLists.txt
index 531198fae01699..0c20aa01f34b1b 100644
--- a/openmp/libomptarget/CMakeLists.txt
+++ b/offload/CMakeLists.txt
@@ -10,12 +10,106 @@
 #
 ##===----------------------------------------------------------------------===##
 
-if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
-  message(FATAL_ERROR "Direct configuration not supported, please use parent directory!")
+cmake_minimum_required(VERSION 3.20.0)
+
+if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
+  set(OPENMP_STANDALONE_BUILD TRUE)
+  project(omptarget C CXX ASM)
+endif()
+
+set(ENABLE_LIBOMPTARGET ON)
+# Currently libomptarget cannot be compiled on Windows or MacOS X.
+# Since the device plugins are only supported on Linux anyway,
+# there is no point in trying to compile libomptarget on other OSes.
+# 32-bit systems are not supported either.
+if (APPLE OR WIN32 OR NOT "cxx_std_17" IN_LIST CMAKE_CXX_COMPILE_FEATURES OR NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
+  set(ENABLE_LIBOMPTARGET OFF)
 endif()
 
-# Add cmake directory to search for custom cmake functions.
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH})
+option(OPENMP_ENABLE_LIBOMPTARGET "Enable building libomptarget for offloading."
+       ${ENABLE_LIBOMPTARGET})
+if (OPENMP_ENABLE_LIBOMPTARGET)
+  # Check that the library can actually be built.
+  if (APPLE OR WIN32)
+    message(FATAL_ERROR "libomptarget cannot be built on Windows and MacOS X!")
+  elseif (NOT "cxx_std_17" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
+    message(FATAL_ERROR "Host compiler must support C++17 to build libomptarget!")
+  elseif (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
+    message(FATAL_ERROR "libomptarget on 32-bit systems are not supported!")
+  endif()
+endif()
+
+# TODO: Leftover from the move, could probably be just LLVM_LIBDIR_SUFFIX everywhere.
+set(OFFLOAD_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}")
+
+set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
+
+# Add path for custom modules
+list(INSERT CMAKE_MODULE_PATH 0
+  "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
+  "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
+  "${LLVM_COMMON_CMAKE_UTILS}/Modules"
+  )
+
+if (OPENMP_STANDALONE_BUILD)
+  # CMAKE_BUILD_TYPE was not set, default to Release.
+  if (NOT CMAKE_BUILD_TYPE)
+    set(CMAKE_BUILD_TYPE Release)
+  endif()
+
+  # Group common settings.
+  set(OPENMP_ENABLE_WERROR FALSE CACHE BOOL
+    "Enable -Werror flags to turn warnings into errors for supporting compilers.")
+  set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING
+    "Suffix of lib installation directory, e.g. 64 => lib64")
+  # Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR.
+  set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}")
+
+  # Group test settings.
+  set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING
+    "C compiler to use for testing OpenMP runtime libraries.")
+  set(OPENMP_TEST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING
+    "C++ compiler to use for testing OpenMP runtime libraries.")
+  set(OPENMP_TEST_Fortran_COMPILER ${CMAKE_Fortran_COMPILER} CACHE STRING
+    "FORTRAN compiler to use for testing OpenMP runtime libraries.")
+  set(OPENMP_LLVM_TOOLS_DIR "" CACHE PATH "Path to LLVM tools for testing.")
+
+  set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to")
+  set(CMAKE_CXX_STANDARD_REQUIRED NO)
+  set(CMAKE_CXX_EXTENSIONS NO)
+else()
+  set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR})
+  # If building in tree, we honor the same install suffix LLVM uses.
+  set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}")
+
+  if (NOT MSVC)
+    set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
+    set(OPENMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++)
+  else()
+    set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang.exe)
+    set(OPENMP_TEST_CXX_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++.exe)
+  endif()
+
+  # Check for flang
+  if (NOT MSVC)
+    set(OPENMP_TEST_Fortran_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/flang-new)
+  else()
+    set(OPENMP_TEST_Fortran_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/flang-new.exe)
+  endif()
+
+  # Set fortran test compiler if flang is found
+  if (EXISTS "${OPENMP_TEST_Fortran_COMPILER}")
+    message("Using local flang build at ${OPENMP_TEST_Fortran_COMPILER}")
+  else()
+    unset(OPENMP_TEST_Fortran_COMPILER)
+  endif()
+
+  # If not standalone, set CMAKE_CXX_STANDARD but don't set the global cache value,
+  # only set it locally for OpenMP.
+  set(CMAKE_CXX_STANDARD 17)
+  set(CMAKE_CXX_STANDARD_REQUIRED NO)
+  set(CMAKE_CXX_EXTENSIONS NO)
+endif()
 
 # Set the path of all resulting libraries to a unified location so that it can
 # be used for testing.
@@ -36,6 +130,9 @@ include(LibomptargetUtils)
 # Get dependencies for the different components of the project.
 include(LibomptargetGetDependencies)
 
+# Set up testing infrastructure.
+include(OpenMPTesting)
+
 # LLVM source tree is required at build time for libomptarget
 if (NOT LIBOMPTARGET_LLVM_INCLUDE_DIRS)
   message(FATAL_ERROR "Missing definition for LIBOMPTARGET_LLVM_INCLUDE_DIRS")
@@ -101,6 +198,10 @@ if (LIBOMPTARGET_USE_LTO)
   list(APPEND offload_link_flags ${CMAKE_CXX_COMPILE_OPTIONS_IPO})
 endif()
 
+# Set LIBOMP_HAVE_OMPT_SUPPORT and LIBOMP_HAVE_VERSION_SCRIPT_FLAG using common offload/openmp cmake module.
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../openmp/runtime/cmake")
+include(OffloadOpenmpCommon)
+
 # OMPT support for libomptarget
 # Follow host OMPT support and check if host support has been requested.
 # LIBOMP_HAVE_OMPT_SUPPORT indicates whether host OMPT support has been implemented.
@@ -125,15 +226,35 @@ set(LIBOMPTARGET_GPU_LIBC_SUPPORT ${LLVM_LIBC_GPU_BUILD} CACHE BOOL
     "Libomptarget support for the GPU libc")
 pythonize_bool(LIBOMPTARGET_GPU_LIBC_SUPPORT)
 
+if(OPENMP_STANDALONE_BUILD)
+  if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    find_package(LLVM HINTS ${CMAKE_INSTALL_PREFIX})
+  endif()
+  find_path (
+    LIBOMP_OMP_TOOLS_INCLUDE_DIR
+    NAMES
+      omp-tools.h
+    HINTS
+    ${LLVM_INCLUDE_DIRS}
+    ${LLVM_INCLUDE_DIRS}/../lib/clang/${LLVM_VERSION_MAJOR}/include
+    ${CMAKE_INSTALL_PREFIX}/include
+    REQUIRED
+  )
+  find_library (
+    LIBOMP_STANDALONE
+    NAMES
+      omp
+    HINTS
+      ${LLVM_LIBRARY_DIRS}
+      ${CMAKE_INSTALL_PREFIX}/lib
+    REQUIRED
+  )
+endif()
+
 set(LIBOMPTARGET_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
 message(STATUS "OpenMP tools dir in libomptarget: ${LIBOMP_OMP_TOOLS_INCLUDE_DIR}")
 include_directories(${LIBOMP_OMP_TOOLS_INCLUDE_DIR})
 
-# Definitions for testing, for reuse when testing libomptarget-nvptx.
-set(LIBOMPTARGET_OPENMP_HEADER_FOLDER "${LIBOMP_INCLUDE_DIR}" CACHE STRING
-  "Path to folder containing omp.h")
-set(LIBOMPTARGET_OPENMP_HOST_RTL_FOLDER "${LIBOMP_LIBRARY_DIR}" CACHE STRING
-  "Path to folder containing libomp.so, and libLLVMSupport.so with profiling enabled")
 set(LIBOMPTARGET_LLVM_LIBRARY_DIR "${LLVM_LIBRARY_DIR}" CACHE STRING
   "Path to folder containing llvm library libomptarget.so")
 set(LIBOMPTARGET_LLVM_LIBRARY_INTDIR "${LIBOMPTARGET_INTDIR}" CACHE STRING
diff --git a/openmp/libomptarget/DeviceRTL/CMakeLists.txt b/offload/DeviceRTL/CMakeLists.txt
similarity index 99%
rename from openmp/libomptarget/DeviceRTL/CMakeLists.txt
rename to offload/DeviceRTL/CMakeLists.txt
index 2509f1276ccee6..c7a5dc5ccf5b67 100644
--- a/openmp/libomptarget/DeviceRTL/CMakeLists.txt
+++ b/offload/DeviceRTL/CMakeLists.txt
@@ -228,7 +228,7 @@ function(compileDeviceRTLLibrary target_cpu target_name target_triple)
   set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${bclib_name} ${LIBOMPTARGET_LIBRARY_DIR}/${bclib_name})
 
   # Install bitcode library under the lib destination folder.
-  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${bclib_name} DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${bclib_name} DESTINATION "${OFFLOAD_INSTALL_LIBDIR}")
 
   set(target_feature "")
   if("${target_triple}" STREQUAL "nvptx64-nvidia-cuda")
@@ -307,4 +307,4 @@ set_target_properties(omptarget.devicertl PROPERTIES
 )
 target_link_libraries(omptarget.devicertl PRIVATE omptarget.devicertl.all_objs)
 
-install(TARGETS omptarget.devicertl ARCHIVE DESTINATION ${OPENMP_INSTALL_LIBDIR})
+install(TARGETS omptarget.devicertl ARCHIVE DESTINATION ${OFFLOAD_INSTALL_LIBDIR})
diff --git a/openmp/libomptarget/DeviceRTL/include/Allocator.h b/offload/DeviceRTL/include/Allocator.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Allocator.h
rename to offload/DeviceRTL/include/Allocator.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Configuration.h b/offload/DeviceRTL/include/Configuration.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Configuration.h
rename to offload/DeviceRTL/include/Configuration.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Debug.h b/offload/DeviceRTL/include/Debug.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Debug.h
rename to offload/DeviceRTL/include/Debug.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Interface.h b/offload/DeviceRTL/include/Interface.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Interface.h
rename to offload/DeviceRTL/include/Interface.h
diff --git a/openmp/libomptarget/DeviceRTL/include/LibC.h b/offload/DeviceRTL/include/LibC.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/LibC.h
rename to offload/DeviceRTL/include/LibC.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Mapping.h b/offload/DeviceRTL/include/Mapping.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Mapping.h
rename to offload/DeviceRTL/include/Mapping.h
diff --git a/openmp/libomptarget/DeviceRTL/include/State.h b/offload/DeviceRTL/include/State.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/State.h
rename to offload/DeviceRTL/include/State.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Synchronization.h b/offload/DeviceRTL/include/Synchronization.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Synchronization.h
rename to offload/DeviceRTL/include/Synchronization.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Types.h b/offload/DeviceRTL/include/Types.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Types.h
rename to offload/DeviceRTL/include/Types.h
diff --git a/openmp/libomptarget/DeviceRTL/include/Utils.h b/offload/DeviceRTL/include/Utils.h
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/Utils.h
rename to offload/DeviceRTL/include/Utils.h
diff --git a/openmp/libomptarget/DeviceRTL/include/generated_microtask_cases.gen b/offload/DeviceRTL/include/generated_microtask_cases.gen
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/include/generated_microtask_cases.gen
rename to offload/DeviceRTL/include/generated_microtask_cases.gen
diff --git a/openmp/libomptarget/DeviceRTL/src/Allocator.cpp b/offload/DeviceRTL/src/Allocator.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Allocator.cpp
rename to offload/DeviceRTL/src/Allocator.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Configuration.cpp b/offload/DeviceRTL/src/Configuration.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Configuration.cpp
rename to offload/DeviceRTL/src/Configuration.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Debug.cpp b/offload/DeviceRTL/src/Debug.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Debug.cpp
rename to offload/DeviceRTL/src/Debug.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Kernel.cpp b/offload/DeviceRTL/src/Kernel.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Kernel.cpp
rename to offload/DeviceRTL/src/Kernel.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/LibC.cpp b/offload/DeviceRTL/src/LibC.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/LibC.cpp
rename to offload/DeviceRTL/src/LibC.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Mapping.cpp b/offload/DeviceRTL/src/Mapping.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Mapping.cpp
rename to offload/DeviceRTL/src/Mapping.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Misc.cpp b/offload/DeviceRTL/src/Misc.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Misc.cpp
rename to offload/DeviceRTL/src/Misc.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Parallelism.cpp b/offload/DeviceRTL/src/Parallelism.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Parallelism.cpp
rename to offload/DeviceRTL/src/Parallelism.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Reduction.cpp b/offload/DeviceRTL/src/Reduction.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Reduction.cpp
rename to offload/DeviceRTL/src/Reduction.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/State.cpp b/offload/DeviceRTL/src/State.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/State.cpp
rename to offload/DeviceRTL/src/State.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Stub.cpp b/offload/DeviceRTL/src/Stub.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Stub.cpp
rename to offload/DeviceRTL/src/Stub.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Synchronization.cpp b/offload/DeviceRTL/src/Synchronization.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Synchronization.cpp
rename to offload/DeviceRTL/src/Synchronization.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Tasking.cpp b/offload/DeviceRTL/src/Tasking.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Tasking.cpp
rename to offload/DeviceRTL/src/Tasking.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Utils.cpp b/offload/DeviceRTL/src/Utils.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Utils.cpp
rename to offload/DeviceRTL/src/Utils.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/Workshare.cpp b/offload/DeviceRTL/src/Workshare.cpp
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/Workshare.cpp
rename to offload/DeviceRTL/src/Workshare.cpp
diff --git a/openmp/libomptarget/DeviceRTL/src/exports b/offload/DeviceRTL/src/exports
similarity index 100%
rename from openmp/libomptarget/DeviceRTL/src/exports
rename to offload/DeviceRTL/src/exports
diff --git a/openmp/libomptarget/README.txt b/offload/README.txt
similarity index 100%
rename from openmp/libomptarget/README.txt
rename to offload/README.txt
diff --git a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake b/offload/cmake/Modules/LibomptargetGetDependencies.cmake
similarity index 100%
rename from openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
rename to offload/cmake/Modules/LibomptargetGetDependencies.cmake
diff --git a/openmp/libomptarget/cmake/Modules/LibomptargetUtils.cmake b/offload/cmake/Modules/LibomptargetUtils.cmake
similarity index 100%
rename from openmp/libomptarget/cmake/Modules/LibomptargetUtils.cmake
rename to offload/cmake/Modules/LibomptargetUtils.cmake
diff --git a/offload/cmake/OpenMPTesting.cmake b/offload/cmake/OpenMPTesting.cmake
new file mode 100644
index 00000000000000..11eafeb764260f
--- /dev/null
+++ b/offload/cmake/OpenMPTesting.cmake
@@ -0,0 +1,238 @@
+# Keep track if we have all dependencies.
+set(ENABLE_CHECK_TARGETS TRUE)
+
+# Function to find required dependencies for testing.
+function(find_standalone_test_dependencies)
+  find_package (Python3 COMPONENTS Interpreter)
+
+  if (NOT Python3_Interpreter_FOUND)
+    message(STATUS "Could not find Python.")
+    message(WARNING "The check targets will not be available!")
+    set(ENABLE_CHECK_TARGETS FALSE PARENT_SCOPE)
+    return()
+  else()
+    set(Python3_EXECUTABLE ${Python3_EXECUTABLE} PARENT_SCOPE)
+  endif()
+
+  # Find executables.
+  find_program(OPENMP_LLVM_LIT_EXECUTABLE
+    NAMES llvm-lit.py llvm-lit lit.py lit
+    PATHS ${OPENMP_LLVM_TOOLS_DIR})
+  if (NOT OPENMP_LLVM_LIT_EXECUTABLE)
+    message(STATUS "Cannot find llvm-lit.")
+    message(STATUS "Please put llvm-lit in your PATH, set OPENMP_LLVM_LIT_EXECUTABLE to its full path, or point OPENMP_LLVM_TOOLS_DIR to its directory.")
+    message(WARNING "The check targets will not be available!")
+    set(ENABLE_CHECK_TARGETS FALSE PARENT_SCOPE)
+    return()
+  endif()
+
+  find_program(OPENMP_FILECHECK_EXECUTABLE
+    NAMES FileCheck
+    PATHS ${OPENMP_LLVM_TOOLS_DIR})
+  if (NOT OPENMP_FILECHECK_EXECUTABLE)
+    message(STATUS "Cannot find FileCheck.")
+    message(STATUS "Please put FileCheck in your PATH, set OPENMP_FILECHECK_E...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/88957


More information about the llvm-commits mailing list