diff options
author | Neil Henning <neil.henning@amd.com> | 2018-11-05 12:04:48 +0000 |
---|---|---|
committer | Neil Henning <neil.henning@amd.com> | 2018-11-05 12:04:48 +0000 |
commit | 233a02d0ede004f5550d812646b4047d92b7a883 (patch) | |
tree | d2e17871588429d3da4ddacd6cc01d7029433d89 /clang/lib/Lex/ModuleMap.cpp | |
parent | 2ae1be726a9a1586eb96b981d30b51b5f6299164 (diff) | |
download | llvm-233a02d0ede004f5550d812646b4047d92b7a883.zip llvm-233a02d0ede004f5550d812646b4047d92b7a883.tar.gz llvm-233a02d0ede004f5550d812646b4047d92b7a883.tar.bz2 |
[AMDGPU] Fix the new atomic optimizer in pixel shaders.
The new atomic optimizer I previously added in D51969 did not work
correctly when a pixel shader was using derivatives, and had helper
lanes active.
To fix this we add an llvm.amdgcn.ps.live call that guards a branch
around the entire atomic operation - ensuring that all helper lanes are
inactive within the wavefront when we compute our atomic results.
I've added a test case that can cause derivatives, and exposes the
problem.
Differential Revision: https://reviews.llvm.org/D53930
llvm-svn: 346128
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions