llvm-project/llvm
Alexander Timofeev 2e29b0138c [AMDGPU] Lowering VGPR to SGPR copies to v_readfirstlane_b32 if profitable.
Since the divergence-driven instruction selection has been enabled for AMDGPU,
 all the uniform instructions are expected to be selected to SALU form, except those not having one.
 VGPR to SGPR copies appear in MIR to connect values producers and consumers. This change implements an algorithm
 that evolves a reasonable tradeoff between the profit achieved from keeping the uniform instructions in SALU form
 and overhead introduced by the data transfer between the VGPRs and SGPRs.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D128252
2022-07-14 23:59:02 +02:00
..
benchmarks
bindings [IR] Remove support for float binop constant expressions 2022-07-12 09:40:49 +02:00
cmake Revert "[llvm] add zstd to llvm::compression namespace" 2022-07-14 01:23:20 -07:00
docs Remove left over merge marker from 4b1e3d1937 2022-07-14 14:51:44 -07:00
examples [Kaleidoscope] Remove unused function argument 2022-06-30 20:47:01 +00:00
include [NFC][Metadata] Change MDNode::operands()'s return type from op_range to ArrayRef<MDOperand> 2022-07-14 17:22:32 +02:00
lib [AMDGPU] Lowering VGPR to SGPR copies to v_readfirstlane_b32 if profitable. 2022-07-14 23:59:02 +02:00
projects
resources
runtimes
test [AMDGPU] Lowering VGPR to SGPR copies to v_readfirstlane_b32 if profitable. 2022-07-14 23:59:02 +02:00
tools [gold] Ignore bitcode from sections inside object files 2022-07-14 14:46:15 -07:00
unittests [SCEVExpander] Make CanonicalMode handing in isSafeToExpand() more robust (PR50506) 2022-07-14 14:41:51 +02:00
utils [gn build] Port a83004f4ff 2022-07-14 19:46:00 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert "[llvm] add zstd to llvm::compression namespace" 2022-07-14 01:23:20 -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.