llvm-project/openmp/runtime/test/worksharing/for
Roman Lebedev 781a0896b0 [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40
Summary:
I have discovered this because i wanted to experiment with
building static libomp (with openmp-4.0 support only)
for debugging purposes.

There are three kinds of problems here:
1. `__kmp_compare_and_store_acq()` simply does not exist.
   It was added in D47903 by @jlpeyton.
   I'm guessing `__kmp_atomic_compare_store_acq()` was meant.
2. In `__kmp_is_ticket_lock_initialized()`,
   `lck->lk.initialized` is `std::atomic<bool>`,
   while `lck` is `kmp_ticket_lock_t *`.
   Naturally, they can't be equality-compared.
   Either, it should return the value read from `lck->lk.initialized`,
   or do what `__kmp_is_queuing_lock_initialized()` does,
   compare the passed pointer with the field in the struct
   pointed by the pointer. I think the latter is correct-er choice here.
3. Tests were not versioned.
   They assume that `LIBOMP_OMP_VERSION` is at the latest version.

This does not touch LIBOMP_OMP_VERSION=30. That is still broken.

Reviewers: jlpeyton, Hahnfeld, AndreyChurbanov

Reviewed By: AndreyChurbanov

Subscribers: guansong, jfb, openmp-commits, jlpeyton

Tags: #openmp

Differential Revision: https://reviews.llvm.org/D55496

llvm-svn: 349260
2018-12-15 09:23:39 +00:00
..
bug_set_schedule_0.c
kmp_doacross_check.c [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40 2018-12-15 09:23:39 +00:00
kmp_sch_simd_guided.c [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40 2018-12-15 09:23:39 +00:00
kmp_sch_simd_runtime_api.c [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40 2018-12-15 09:23:39 +00:00
kmp_sch_simd_runtime_guided.c [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40 2018-12-15 09:23:39 +00:00
kmp_sch_simd_runtime_static.c [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40 2018-12-15 09:23:39 +00:00
kmp_set_dispatch_buf.c
omp_doacross.c [OpenMP] Fixes for LIBOMP_OMP_VERSION=45/40 2018-12-15 09:23:39 +00:00
omp_for_bigbounds.c [test] Remove XFAIL of omp_for_bigbounds.c for Intel Compiler 2018-07-26 18:14:57 +00:00
omp_for_collapse.c
omp_for_firstprivate.c
omp_for_lastprivate.c
omp_for_nowait.c
omp_for_ordered.c
omp_for_private.c
omp_for_reduction.c
omp_for_schedule_auto.c
omp_for_schedule_dynamic.c
omp_for_schedule_guided.c
omp_for_schedule_runtime.c
omp_for_schedule_static.c
omp_for_schedule_static_3.c
omp_parallel_for_firstprivate.c
omp_parallel_for_if.c
omp_parallel_for_lastprivate.c
omp_parallel_for_ordered.c
omp_parallel_for_private.c
omp_parallel_for_reduction.c