]> granicus.if.org Git - llvm/commit
Merging r277504:
authorHans Wennborg <hans@hanshq.net>
Wed, 3 Aug 2016 18:13:01 +0000 (18:13 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 3 Aug 2016 18:13:01 +0000 (18:13 +0000)
commit7710002274bb6e33d00fdbc4a821f95bedc1f04f
treecb9f1bd4e0a6c02db945211ca3defad9bf72607c
parentd404fac34a2d84489246720b1fd69b4ee7d87f54
Merging r277504:
------------------------------------------------------------------------
r277504 | nha | 2016-08-02 12:31:14 -0700 (Tue, 02 Aug 2016) | 20 lines

AMDGPU: Stay in WQM for non-intrinsic stores

Summary:
Two types of stores are possible in pixel shaders: stores to memory that are
explicitly requested at the API level, and stores that are an implementation
detail of register spilling or lowering of arrays.

For the first kind of store, we must ensure that helper pixels have no effect
and hence WQM must be disabled. The second kind of store must always be
executed, because the written value may be loaded again in a way that is
relevant for helper pixels as well -- and there are no externally visible
effects anyway.

This is a candidate for the 3.9 release branch.

Reviewers: arsenm, tstellarAMD, mareko

Subscribers: arsenm, kzhuravl, llvm-commits

Differential Revision: https://reviews.llvm.org/D22675
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_39@277620 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AMDGPU/SIDefines.h
lib/Target/AMDGPU/SIInstrFormats.td
lib/Target/AMDGPU/SIInstrInfo.h
lib/Target/AMDGPU/SIInstrInfo.td
lib/Target/AMDGPU/SIInstructions.td
lib/Target/AMDGPU/SIWholeQuadMode.cpp
test/CodeGen/AMDGPU/skip-if-dead.ll
test/CodeGen/AMDGPU/wqm.ll