aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorDaniel Douglas <daniel_douglas+llvm@apple.com>2022-06-24 11:59:22 -0500
committerJonathan Peyton <jonathan.l.peyton@intel.com>2022-06-24 12:02:16 -0500
commitd4a7b8de527da9f3fa02a86c131b41ca52bb878c (patch)
tree15a40fdb7ea76b4d5d4796e68bc5acd727189f17 /clang/lib/Frontend/CompilerInvocation.cpp
parent42bb88e2aaee30372065d7704de4d99d4552cfb6 (diff)
downloadllvm-d4a7b8de527da9f3fa02a86c131b41ca52bb878c.zip
llvm-d4a7b8de527da9f3fa02a86c131b41ca52bb878c.tar.gz
llvm-d4a7b8de527da9f3fa02a86c131b41ca52bb878c.tar.bz2
[OpenMP][libomp] avoid spin wait and yield on arm64 macOS
This patch changes the default behavior to avoid spin waiting and yielding. (See “Don’t Keep Threads Active And Idle” section here: https://developer.apple.com/documentation/apple-silicon/tuning-your-code-s-performance-for-apple-silicon) We verified using instruments traces that the changes improve scheduling behavior on macOS. We also collected results using EPCC schedbench (https://github.com/LangdalP/EPCC-OpenMP-micro-benchmarks) that are attached here that show a reduction in standard deviation and max test run time across all scheduling types. Static scheduling sees dramatic improvements with these changes, we see a 2-4x average runtime improvement in the benchmark. Differential Revision: https://reviews.llvm.org/D126510
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions