[Openmp-commits] [PATCH] D47961: [OpenMP] Restructure loop code for hierarchical scheduling

Jonathan Peyton via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Fri Jun 8 15:06:27 PDT 2018


jlpeyton created this revision.
jlpeyton added reviewers: tlwilmar, AndreyChurbanov.
jlpeyton added a project: OpenMP.
Herald added a subscriber: guansong.

This patch reorganizes the loop scheduling code in order to allow hierarchical scheduling to use it more effectively.  In particular, the goal of this patch is to separate the algorithmic parts of the scheduling from the thread logistics code.

1. Moves declarations & structures to `kmp_dispatch.h` for easier access in other files.
2. Extracts the algorithmic part of `__kmp_dispatch_init()` and `__kmp_dispatch_next()` into `__kmp_dispatch_init_algorithm()` and `__kmp_dispatch_next_algorithm()`.  The thread bookkeeping logic is still kept in `__kmp_dispatch_init()` and `__kmp_dispatch_next()`.  This is done because the hierarchical scheduler needs to access the scheduling logic without the bookkeeping logic.
3. To prepare for new pointer in `dispatch_private_info_t`, a new flags variable is created which stores the `ordered` and `nomerge` flags instead of them being in two separate variables.  This will keep the `dispatch_private_info_t` structure the same size.


Repository:
  rOMP OpenMP

https://reviews.llvm.org/D47961

Files:
  runtime/src/kmp.h
  runtime/src/kmp_dispatch.cpp
  runtime/src/kmp_dispatch.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47961.150577.patch
Type: text/x-patch
Size: 115819 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20180608/087c9da4/attachment-0001.bin>


More information about the Openmp-commits mailing list