Go to file
Nicolai Haehnle c4a2ff0950 AMDGPU: Divergence-driven selection of scalar buffer load intrinsics
Summary:
Moving SMRD to VMEM in SIFixSGPRCopies is rather bad for performance if
the load is really uniform. So select the scalar load intrinsics directly
to either VMEM or SMRD buffer loads based on divergence analysis.

If an offset happens to end up in a VGPR -- either because a floating
point calculation was involved, or due to other remaining deficiencies
in SIFixSGPRCopies -- we use v_readfirstlane.

There is some unrelated churn in tests since we now select MUBUF offsets
in a unified way with non-scalar buffer loads.

Change-Id: I170e6816323beb1348677b358c9d380865cd1a19

Reviewers: arsenm, alex-t, rampitec, tpr

Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, llvm-commits

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

llvm-svn: 344696
2018-10-17 15:37:30 +00:00
clang NFC: Remove trailing space from CodeGenModule.cpp 2018-10-17 04:29:56 +00:00
clang-tools-extra [clangd] Support scope proximity in code completion. 2018-10-17 11:19:02 +00:00
compiler-rt [XRay][compiler-rt] Generational Buffer Management 2018-10-17 06:57:50 +00:00
debuginfo-tests Revert "(Retry) Add a basic integration test for C++ smart pointers" 2018-08-20 19:53:33 +00:00
libclc configure: Rework support for gfx9+ devices that were added post LLVM 3.9 2018-09-15 22:02:01 +00:00
libcxx [libcxx] Mark chrono literal unit tests as being unsupported on AppleClang 10 2018-10-17 00:34:13 +00:00
libcxxabi cxa_demangle: make demangler's parsing functions overridable 2018-10-16 14:29:14 +00:00
libunwind [CMake] Link to compiler-rt if LIBUNWIND_USE_COMPILER_RT is ON. 2018-10-08 18:35:00 +00:00
lld [NewPM] teach -passes= to emit meaningful error messages 2018-10-17 10:36:23 +00:00
lldb [LLDB] - Add support for DW_RLE_start_end entries (.debug_rnglists) 2018-10-17 07:37:26 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm AMDGPU: Divergence-driven selection of scalar buffer load intrinsics 2018-10-17 15:37:30 +00:00
openmp [OpenMP] Convert KMP_DYNAMIC_LIB to a 0 or 1 guard everywhere 2018-10-05 17:59:39 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly Fix broken formatting caused by test commit 2018-10-17 15:01:18 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

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