llvm-project/llvm/lib/Transforms/InstCombine
Philip Reames b091cc081d [InstCombine] Fix a nasty miscompile introduced w/masked.gather demanded elts
This fixes a miscompile which was introduced in r356510 (https://reviews.llvm.org/D57372).

The problem is that the original patch removed pointer operands where the load results we're demanded, but without considering the legality of the load itself.  If the masked.gather had active, but undemanded, lanes, then we could end up creating a load which loaded from an undef address.  The result could be a segfault, or, in theory, an arbitrary read from a random memory location into an used register.  

llvm-svn: 358299
2019-04-12 18:26:56 +00:00
..
CMakeLists.txt [InstCombine] Optimize `atomicrmw <op>, 0` into `load atomic` when possible 2019-02-07 21:27:23 +00:00
InstCombineAddSub.cpp [InstCombine] prevent possible miscompile with negate+sdiv of vector op 2019-04-09 14:09:06 +00:00
InstCombineAndOrXor.cpp [InstCombine] Don't transform ((C1 OP zext(X)) & C2) -> zext((C1 OP X) & C2) if either zext or OP has another use. 2019-03-21 17:50:49 +00:00
InstCombineAtomicRMW.cpp [InstCombine] Extend saturating idempotent atomicrmw transform to FP 2019-03-01 19:50:36 +00:00
InstCombineCalls.cpp [InstCombine] ssubo X, C -> saddo X, -C 2019-04-10 16:27:36 +00:00
InstCombineCasts.cpp Extra processing for BitCast + PHI in InstCombine 2019-02-09 01:44:28 +00:00
InstCombineCompares.cpp [InstCombine] Handle ssubo always overflow 2019-04-10 16:32:15 +00:00
InstCombineInternal.h Simplify operands of masked stores and scatters based on demanded elements 2019-03-20 18:44:58 +00:00
InstCombineLoadStoreAlloca.cpp [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
InstCombineMulDivRem.cpp [InstCombine] Canonicalize (-X s/ Y) to -(X s/ Y). 2019-04-10 06:52:09 +00:00
InstCombinePHI.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
InstCombineSelect.cpp [InstCombine] Use uadd.sat and usub.sat for canonicalization 2019-03-27 17:56:15 +00:00
InstCombineShifts.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Fix a nasty miscompile introduced w/masked.gather demanded elts 2019-04-12 18:26:56 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] remove overzealous assert for shuffles (PR41419) 2019-04-08 13:28:29 +00:00
InstructionCombining.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00