1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/lib/Transforms/InstCombine
Sanjay Patel ee24e16f9b [InstCombine] Fix matchRotate bug when one operand is a ConstantExpr shift
This bug seems to be harmless in release builds, but will cause an error in UBSAN
builds or an assertion failure in debug builds.

When it gets to this opcode comparison, it assumes both of the operands are BinaryOperators,
but the prior m_LogicalShift will also match a ConstantExpr. The cast<BinaryOperator> will
assert in a debug build, or reading an invalid value for BinaryOp from memory with
((BinaryOperator*)constantExpr)->getOpcode() will cause an error in a UBSAN build.

The test I added will fail without this change in debug/UBSAN builds, but not in release.

Patch by: @AndrewScheidecker (Andrew Scheidecker)

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

llvm-svn: 353736
2019-02-11 19:26:27 +00:00
..
CMakeLists.txt [InstCombine] Optimize atomicrmw <op>, 0 into load atomic when possible 2019-02-07 21:27:23 +00:00
InstCombineAddSub.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InstCombineAndOrXor.cpp [InstCombine] Fix matchRotate bug when one operand is a ConstantExpr shift 2019-02-11 19:26:27 +00:00
InstCombineAtomicRMW.cpp [InstCombine] Optimize atomicrmw <op>, 0 into load atomic when possible 2019-02-07 21:27:23 +00:00
InstCombineCalls.cpp [InstCombine] Fix an unused variable warning. 2019-02-10 02:21:29 +00:00
InstCombineCasts.cpp Extra processing for BitCast + PHI in InstCombine 2019-02-09 01:44:28 +00:00
InstCombineCompares.cpp [InstCombine] Fix crashing from (icmp (bitcast ([su]itofp X)), Y) 2019-02-07 21:12:01 +00:00
InstCombineInternal.h Implementation of asm-goto support in LLVM 2019-02-08 20:48:56 +00:00
InstCombineLoadStoreAlloca.cpp [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
InstCombineMulDivRem.cpp [CallSite removal] Remove CallSite uses from InstCombine. 2019-01-31 17:23:29 +00:00
InstCombinePHI.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
InstCombineSelect.cpp [InstCombine] canonicalize cmp/select form of uadd saturate with constant 2019-01-29 20:02:45 +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] Cleanup the TFE/LWE check in AMDGPU SimplifyDemanded 2019-02-04 21:24:19 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] limit extracting shuffle transform based on uses 2019-02-05 22:58:45 +00:00
InstructionCombining.cpp Implementation of asm-goto support in LLVM 2019-02-08 20:48:56 +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