aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
diff options
context:
space:
mode:
authorJoachim Protze <protze@itc.rwth-aachen.de>2020-11-19 23:27:43 +0100
committerJoachim Protze <protze@itc.rwth-aachen.de>2021-06-09 13:36:19 +0200
commit08d8f1a958bd8be681e3e1f346be80818a83a556 (patch)
tree35009172d48644c190d7ddc8eeb641c12e80fa38 /lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
parent82e4e505315b8df27e82c0e1cb9d5eb1aa7d45da (diff)
downloadllvm-08d8f1a958bd8be681e3e1f346be80818a83a556.zip
llvm-08d8f1a958bd8be681e3e1f346be80818a83a556.tar.gz
llvm-08d8f1a958bd8be681e3e1f346be80818a83a556.tar.bz2
[OpenMP][Tools] Cleanup memory pool used in Archer
The main motivation for reusing objects is that it helps to avoid creating and leaking synchronization clocks in TSan. The reused object will reuse the synchronization clock in TSan. Before, new and delete operators were overloaded to get and return memory for the object from/to the object pool. This patch replaces the operator overloading with explicit static New/Delete functions. Objects for parallel regions and implicit tasks will always be recruited and returned to the thread-local object pool. Only for explicit task, there is a chance that an other thread completes the task and will free the object. This patch optimizes the thread-local New/Delete calls by avoiding locks and only lock if the pool is empty. Remote threads return the object into a separate queue. The chunk size for allocations is now decided based on page size. The objects will also be aligned to cache lines avoiding false sharing. This is the first patch in a series to provide better tasking support. Differential Revision: https://reviews.llvm.org/D103606
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h')
0 files changed, 0 insertions, 0 deletions