[PATCH] D41914: Improve threadprivate implementation

Terry Wilmarth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 10 12:53:11 PST 2018


tlwilmar created this revision.
tlwilmar added reviewers: hbae, jlpeyton, AndreyChurbanov.
Herald added a subscriber: llvm-commits.

These changes improve the threadprivate implementation to allow the compiler to reuse the same caches consistently, without allocating new ones.  To do this, we make it possible to resize caches when needed, and to point the compiler's pointer at newly resized caches.  The implementation also works with older compilers by looking up existing caches rather than creating new ones.  Because older compilers still call into the __kmpc_threadprivate_cached function repeatedly, we still suffer the performance of the frequent locking to look up the existing cache.  Future compilers should only call __kmpc_threadprivate_cached once per piece of threadprivate data per global thread id.


Repository:
  rL LLVM

https://reviews.llvm.org/D41914

Files:
  runtime/src/kmp.h
  runtime/src/kmp_runtime.cpp
  runtime/src/kmp_threadprivate.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41914.129320.patch
Type: text/x-patch
Size: 15763 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180110/852fcfe4/attachment.bin>


More information about the llvm-commits mailing list