llvm-project/llvm/lib
Neil Henning 233a02d0ed [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
2018-11-05 12:04:48 +00:00
..
Analysis [ValueTracking] determine sign of 0.0 from select when matching min/max FP 2018-11-04 14:28:48 +00:00
AsmParser Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
BinaryFormat Revert r343317 2018-09-28 17:01:50 +00:00
Bitcode Revert "[ThinLTO] Fix a crash in lazy loading of Metadata" 2018-10-23 23:00:29 +00:00
CodeGen [DAGCombiner] Use tryFoldToZero to simplify some code and make it work correctly between LegalTypes and LegalOperations. 2018-11-05 05:53:06 +00:00
DebugInfo [DWARF v5] Verifier: Add checks for DW_FORM_strx* forms. 2018-11-03 00:27:35 +00:00
Demangle Fix clang -Wimplicit-fallthrough warnings across llvm, NFC 2018-11-01 19:54:45 +00:00
ExecutionEngine [ORC] Fix hex printing of uint64_t values. 2018-10-31 05:16:14 +00:00
FuzzMutate [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Fuzzer
IR [LTO] Fix a crash caused by accessing an empty ValueInfo 2018-11-02 23:49:21 +00:00
IRReader
LTO [NewPM] teach -passes= to emit meaningful error messages 2018-10-17 10:36:23 +00:00
LineEditor
Linker llvm-link: Improve diagnostic for module-level metadata mismatch 2018-10-09 01:17:27 +00:00
MC [WebAssembly] Parsing missing directives to produce valid .o 2018-11-02 22:04:33 +00:00
Object llvm-ar: Darwin archive format fixes. 2018-10-10 21:07:02 +00:00
ObjectYAML Fix printing bug in pdb2yaml. 2018-10-30 18:25:38 +00:00
OptRemarks Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
Option [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Passes [LoopUnroll] allow customization for new-pass-manager version of LoopUnroll 2018-10-31 14:33:14 +00:00
ProfileData Support for remapping profile data when symbols change, for sample-based 2018-10-10 21:31:01 +00:00
Support [VFS] Add support for "no_push" to VFS recursive iterators. 2018-10-31 23:36:10 +00:00
TableGen [TableGen] fix assert in !cast when used out of definition in a multiclass 2018-10-10 10:52:57 +00:00
Target [AMDGPU] Fix the new atomic optimizer in pixel shaders. 2018-11-05 12:04:48 +00:00
Testing Fix error with SmallString implicit conversion. 2018-09-06 22:47:32 +00:00
ToolDrivers [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Transforms [HotColdSplitting] Use TTI to inform outlining threshold 2018-11-04 23:11:57 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay [XRay] Update delta computations in runtime 2018-11-02 08:07:38 +00:00
CMakeLists.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
LLVMBuild.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00