llvm-project/llvm
Baptiste Saleil 79e77a9f39 [AMDGPU] Flush the vmcnt counter in loop preheaders when necessary
waitcnt vmcnt instructions are currently generated in loop bodies before using
values loaded outside of the loop. In some cases, it is better to flush the
vmcnt counter in a loop preheader before entering the loop body. This patch
detects these cases and generates waitcnt instructions to flush the counter.

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D115747
2022-06-23 10:53:21 -04:00
..
benchmarks
bindings [llvm-ocaml] Add and use opaque pointer compatible bindings 2022-06-02 11:42:24 +02:00
cmake [CMake] Don't pass CMAKE_C(XX)_COMPILER to the nested NATIVE build when cross compiling 2022-06-22 09:33:50 +03:00
docs [llvm-c] Add LLVMGetAggregateElement() function 2022-06-23 14:50:54 +02:00
examples Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
include [AMDGPU] Flush the vmcnt counter in loop preheaders when necessary 2022-06-23 10:53:21 -04:00
lib [AMDGPU] Flush the vmcnt counter in loop preheaders when necessary 2022-06-23 10:53:21 -04:00
projects
resources
runtimes Revert "[runtimes] Detect changes to Tests.cmake" 2022-05-26 09:34:18 -07:00
test [AMDGPU] Flush the vmcnt counter in loop preheaders when necessary 2022-06-23 10:53:21 -04:00
tools [llvm-c] Add LLVMGetAggregateElement() function 2022-06-23 14:50:54 +02:00
unittests [VPlan] Update unit test after 569d84fe99. 2022-06-23 13:44:41 +02:00
utils [gn build] Port 2c3bbac0c7 2022-06-23 11:53:18 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert "Revert "[CMake] Enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR by default on Linux"" 2022-06-21 13:13:31 -07:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

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.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.