1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/lib/Transforms/InstCombine
Alexey Bataev ee8f542f19 [InstCombine] Fix PR35618: Instcombine hangs on single minmax load bitcast.
Summary:
If we have pattern `store (load(bitcast(select (cmp(V1, V2), &V1,
&V2)))), bitcast)`, but the load is used in other instructions, it leads
to looping in InstCombiner. Patch adds additional check that all users
of the load instructions are stores and then replaces all uses of load
instruction by the new one with new type.

Reviewers: RKSimon, spatel, majnemer

Subscribers: llvm-commits

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

llvm-svn: 320496
2017-12-12 16:58:48 +00:00
..
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
InstCombineAddSub.cpp [InstCombine] canonicalize constant-minus-boolean to select-of-constants 2017-12-06 21:22:57 +00:00
InstCombineAndOrXor.cpp [ValueTracking, InstCombine] canonicalize fcmp ord/uno with non-NAN ops to null constants 2017-09-05 23:13:13 +00:00
InstCombineCalls.cpp Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
InstCombineCasts.cpp [InstCombine] include 'sub' in the list of narrow-able binops 2017-11-16 14:40:51 +00:00
InstCombineCompares.cpp [InstCombine] Teach visitICmpInst to not break integer absolute value idioms 2017-11-12 02:28:21 +00:00
InstCombineInternal.h Create instruction classes for identifying any atomicity of memory intrinsic. (NFC) 2017-10-30 19:51:48 +00:00
InstCombineLoadStoreAlloca.cpp [InstCombine] Fix PR35618: Instcombine hangs on single minmax load bitcast. 2017-12-12 16:58:48 +00:00
InstCombineMulDivRem.cpp [IR] redefine 'UnsafeAlgebra' / 'reassoc' fast-math-flags and add 'trans' fast-math-flag 2017-11-06 16:27:15 +00:00
InstCombinePHI.cpp Renable r314928 2017-10-10 05:07:54 +00:00
InstCombineSelect.cpp [InstCombine] Simplify binops that are only used by a select and are fed by a select with the same condition. 2017-11-15 05:23:02 +00:00
InstCombineShifts.cpp Recommit r317510 "[InstCombine] Pull shifts through a select plus binop with constant" 2017-11-07 18:47:24 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Fix SimplifyDemandedUseBits SHL handling (PR35515) 2017-12-09 23:42:56 +00:00
InstCombineVectorOps.cpp Revert r320049, r320014 and r319894 2017-12-12 10:03:39 +00:00
InstructionCombining.cpp [InstCombine] Salvage debug info during initial DCE 2017-11-15 18:51:12 +00:00
LLVMBuild.txt