aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/COFFModuleDefinition.cpp
diff options
context:
space:
mode:
authorJonathan Peyton <jonathan.l.peyton@intel.com>2017-07-18 18:50:13 +0000
committerJonathan Peyton <jonathan.l.peyton@intel.com>2017-07-18 18:50:13 +0000
commit93e17cfe6c2e8e20f99d45241804732a78737baf (patch)
tree674194c7c383f1f20131be6cfe0224849d67a03c /llvm/lib/Object/COFFModuleDefinition.cpp
parentd01e956d38b60508cef4851a6668838261e9b700 (diff)
downloadllvm-93e17cfe6c2e8e20f99d45241804732a78737baf.zip
llvm-93e17cfe6c2e8e20f99d45241804732a78737baf.tar.gz
llvm-93e17cfe6c2e8e20f99d45241804732a78737baf.tar.bz2
Add recursive task scheduling strategy to taskloop implementation
Summary: Taskloop implementation is extended by using recursive task scheduling. Envirable KMP_TASKLOOP_MIN_TASKS added as a manual threshold for the user to switch from recursive to linear tasks scheduling. Details: * The calculations for the loop parameters are moved from __kmp_taskloop_linear upper level * Initial calculation is done in the __kmpc_taskloop, further range splitting is done in the __kmp_taskloop_recur. * Added threshold to switch from recursive to linear tasks scheduling; * One half of split range is scheduled as an internal task which just moves sub-range parameters to the stealing thread that continues recursive scheduling (if number of tasks still enough), the other half is processed recursively; * Internal task duplication routine fixed to assign parent task, that was not needed when all tasks were scheduled by same thread, but is needed now. Patch by Andrey Churbanov Differential Revision: https://reviews.llvm.org/D35273 llvm-svn: 308338
Diffstat (limited to 'llvm/lib/Object/COFFModuleDefinition.cpp')
0 files changed, 0 insertions, 0 deletions