1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
Go to file
Nicolai Haehnle 1772a3e0bc AMDGPU: Fix MUBUF offset bugs affecting llvm.amdgcn.buffer.* intrinsics
Summary:
This fixes two related bugs. First, the generic optimization passes
unfortunately generate negative constant offsets but the hardware treats
SOffset as an unsigned value.

Second, there is a hardware bug on SI and CI, where address clamping in MUBUF
instructions does not work correctly when SOffset is larger than the buffer
size. This patch works around this bug by never using SOffset.

An alternative workaround would be to do the clamping manually when SOffset
is too large, but generating the required code sequence during instruction
selection would be rather involved, and in any case the resulting code would
probably be worse.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96360

Reviewers: arsenm, tstellarAMD

Subscribers: arsenm, llvm-commits, kzhuravl

Differential Revision: http://reviews.llvm.org/D21326

llvm-svn: 272761
2016-06-15 07:13:05 +00:00
bindings Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
cmake Add support for collating profiles for use with code coverage 2016-06-13 23:33:48 +00:00
docs Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
examples [MCJIT] Update MCJIT and get the fibonacci example working again. 2016-06-11 05:47:04 +00:00
include [PM] Port AlignmentFromAssumptions to the new PM. 2016-06-15 06:18:01 +00:00
lib AMDGPU: Fix MUBUF offset bugs affecting llvm.amdgcn.buffer.* intrinsics 2016-06-15 07:13:05 +00:00
projects
resources
test AMDGPU: Fix MUBUF offset bugs affecting llvm.amdgcn.buffer.* intrinsics 2016-06-15 07:13:05 +00:00
tools Add support for callsite in the new C API for attributes 2016-06-15 05:14:29 +00:00
unittests Add a Musl environment to the triple. 2016-06-14 12:45:33 +00:00
utils Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
.arcconfig
.clang-format
.clang-tidy Don't use misc-unused-parameters check on LLVM. 2016-04-13 08:58:52 +00:00
.gitignore
CMakeLists.txt Add support for collating profiles for use with code coverage 2016-06-13 23:33:48 +00:00
CODE_OWNERS.TXT Sort my entry in CODE_OWNERS.TXT 2016-05-26 23:10:37 +00:00
configure
CREDITS.TXT Update my email address. 2016-05-10 16:23:54 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:41:06 +00:00
llvm.spec.in
LLVMBuild.txt
README.txt

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.

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.