Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Nicolai Haehnle 1a1eaef0b2 AMDGPU: Fix SILoadStoreOptimizer when writes cannot be merged due register dependencies
Summary:
When finding a match for a merge and collecting the instructions that must
be moved, keep in mind that the instruction we merge might actually use one
of the defs that are being moved.

Fixes piglit spec/arb_enhanced_layouts/execution/component-layout/vs-tcs-load-output[-indirect].

The fact that the ds_read in the test case is not eliminated suggests that
there might be another problem related to alias analysis, but that's a
separate problem: this pass should still work correctly even when earlier
optimization passes missed something or were disabled.

Reviewers: tstellarAMD, arsenm

Subscribers: kzhuravl, wdng, yaxunl, llvm-commits, tony-tye

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

llvm-svn: 285273
2016-10-27 08:15:07 +00:00
bindings [Go bindings] Update for r284678 API changes. 2016-10-20 09:14:39 +00:00
cmake cmake: Make /usr/share/cmake installable with LLVM_DISTRIBUTION_COMPONENTS 2016-10-24 21:40:15 +00:00
docs DebugInfo: support for DWARFv5 DW_AT_alignment attribute 2016-10-26 11:59:03 +00:00
examples [BuildingAJIT] Use the remote target triple to construct the TargetMachine in 2016-10-19 22:41:03 +00:00
include [IR] Retire unused getGEPReturnType overload. NFCI. 2016-10-26 23:46:16 +00:00
lib AMDGPU: Fix SILoadStoreOptimizer when writes cannot be merged due register dependencies 2016-10-27 08:15:07 +00:00
projects [CMake] Correct configuration order of the sub-projects based on ther dependancies 2016-10-09 20:38:29 +00:00
resources
runtimes [CMake] Make the runtimes directory work with bootstrap builds 2016-10-19 21:50:25 +00:00
test AMDGPU: Fix SILoadStoreOptimizer when writes cannot be merged due register dependencies 2016-10-27 08:15:07 +00:00
tools xray-extract.cc: Quick fix for mingw, to avoid errc::protocol_error. 2016-10-27 00:34:24 +00:00
unittests DebugInfo: fix incorrect alignment type (NFC) 2016-10-26 21:32:29 +00:00
utils [utils] Add a '--unified-report' option to the code coverage prep script 2016-10-26 22:07:39 +00:00
.arcconfig project_id is from another era in phabricator land and does not provide any value. 2016-09-27 15:47:29 +00:00
.clang-format
.clang-tidy .clang-tidy: correct style name is 'camelBack' not 'lowerCase'. 2016-09-13 19:04:26 +00:00
.gitignore gitignore: ignore VS Code editor files 2016-09-02 22:54:26 +00:00
CMakeLists.txt cmake: Rename installhdrs to install-llvm-headers and fix the dependencies 2016-10-24 21:58:58 +00:00
CODE_OWNERS.TXT Take ownership of libLTO as discussed on llvm-dev. 2016-09-15 17:42:39 +00:00
configure
CREDITS.TXT Shamelessly add myself to CREDITS.TXT 2016-08-04 16:28:22 +00:00
LICENSE.TXT Remove autoconf references from LICENSE.TXT 2016-08-12 20:11:03 +00:00
llvm.spec.in
LLVMBuild.txt
README.txt Revert rL277454 2016-08-02 13:26:07 +00:00
RELEASE_TESTERS.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.