[Openmp-commits] [PATCH] D55496: [OpenMP] RFC: fixes for LIBOMP_OMP_VERSION=4.5/4
Roman Lebedev via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Sun Dec 9 07:26:20 PST 2018
lebedev.ri created this revision.
lebedev.ri added reviewers: jlpeyton, Hahnfeld, AndreyChurbanov.
lebedev.ri added a project: OpenMP.
Herald added subscribers: jfb, guansong.
I have discovered this because i wanted to experiment with building static libomp
(with openmp-4.0 support only) for debugging purposes.
This is marked as RFC because i'm not sure if non-default values for
`LIBOMP_OMP_VERSION` are supposed to work or not.
There are three kinds of problems here:
1. `__kmp_compare_and_store_acq()` simply does not exist. It was added in D47903 <https://reviews.llvm.org/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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 12687 bytes
Desc: not available
More information about the Openmp-commits