Go to file
Jonathan Peyton e47d32f165 [OpenMP] Make use of sched_yield optional in runtime
This patch cleans up the yielding code and makes it optional. An
environment variable, KMP_USE_YIELD, was added. Yielding is still
on by default (KMP_USE_YIELD=1), but can be turned off completely
(KMP_USE_YIELD=0), or turned on only when oversubscription is detected
(KMP_USE_YIELD=2). Note that oversubscription cannot always be detected
by the runtime (for example, when the runtime is initialized and the
process forks, oversubscription cannot be detected currently over
multiple instances of the runtime).

Because yielding can be controlled by user now, the library mode
settings (from KMP_LIBRARY) for throughput and turnaround have been
adjusted by altering blocktime, unless that was also explicitly set.

In the original code, there were a number of places where a double yield
might have been done under oversubscription. This version checks
oversubscription and if that's not going to yield, then it does
the spin check.

Patch by Terry Wilmarth

Differential Revision: https://reviews.llvm.org/D58148

llvm-svn: 355120
2019-02-28 19:11:29 +00:00
clang [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
clang-tools-extra [clang-tidy] fix documentation link in list of clang-tidy checks 2019-02-28 17:53:51 +00:00
compiler-rt [PGO] Update InstrProfData.inc to sync with llvm 2019-02-28 19:06:02 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
libcxx [NFC][libc++] Update comment about oldest supported macosx for back-deployment 2019-02-27 23:36:22 +00:00
libcxxabi [libcxxabi][CMake] Drop unused HandleOutOfTreeLLVM include 2019-02-18 20:58:06 +00:00
libunwind [CMake] Don't cache LLVM_MAIN_SRC_DIR 2019-02-13 07:09:26 +00:00
lld [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
lldb [cmake] Move LLDB_DISABLE_LIBEDIT handling code into a central place 2019-02-28 16:04:54 +00:00
llgo Adjust documentation for git migration. 2019-01-29 16:37:27 +00:00
llvm [InstCombine] fold adds of constants separated by sext/zext 2019-02-28 19:05:26 +00:00
openmp [OpenMP] Make use of sched_yield optional in runtime 2019-02-28 19:11:29 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly [opaque pointer types] Update calls to CreateCall to pass the function 2019-02-08 19:30:46 +00:00
pstl [pstl] Remove some warnings when compiling with a recent Clang 2019-02-15 17:30:35 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.