1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/lib/Transforms/InstCombine
Nikita Popov ce78a3156f [Loads] Add optimized FindAvailableLoadedValue() overload (NFCI)
FindAvailableLoadedValue() accepts an iterator by reference. If no
available value is found, then the iterator will either be left
at a clobbering instruction or the beginning of the basic block.
This allows using FindAvailableLoadedValue() across multiple blocks.

If this functionality is not needed, as is the case in InstCombine,
then we can use a much more efficient implementation: First try
to find an available value, and only perform clobber checks if
we actually found one. As this function only looks at a very small
number of instructions (6 by default) and usually doesn't find an
available value, this saves many expensive alias analysis queries.
2021-02-21 18:42:56 +01:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
InstCombineAddSub.cpp [InstCombine] Transform (A + B) - (A & B) to A | B (PR48604) 2020-12-31 15:04:32 +01:00
InstCombineAndOrXor.cpp [InstCombine] matchBSwapOrBitReverse - remove pattern matching early-out. NFCI. 2021-02-20 13:15:34 +00:00
InstCombineAtomicRMW.cpp Add missing namespace closure comments. NFCI. 2020-09-23 16:19:25 +01:00
InstCombineCalls.cpp [BasicAA] Always strip single-argument phi nodes 2021-02-18 23:07:50 +01:00
InstCombineCasts.cpp [STLExtras] Use return type from operator* of the wrapped iter. 2021-01-10 14:41:13 +00:00
InstCombineCompares.cpp [InstCombine] fold fcmp-of-copysign idiom 2021-02-17 10:32:33 -05:00
InstCombineInternal.h [InstCombine] matchBSwapOrBitReverse - remove pattern matching early-out. NFCI. 2021-02-20 13:15:34 +00:00
InstCombineLoadStoreAlloca.cpp [Loads] Add optimized FindAvailableLoadedValue() overload (NFCI) 2021-02-21 18:42:56 +01:00
InstCombineMulDivRem.cpp [InstCombine] fold fdiv with exp/exp2 divisor (PR49147) 2021-02-20 16:02:58 -05:00
InstCombineNegator.cpp [Transforms] Use range-based for loops (NFC) 2021-02-08 22:33:53 -08:00
InstCombinePHI.cpp [CSSPGO] Unblock optimizations with pseudo probe instrumentation. 2021-02-10 12:43:17 -08:00
InstCombineSelect.cpp Reapply [InstCombine] Replace one-use select operand based on condition 2021-01-19 20:26:38 +01:00
InstCombineShifts.cpp [InstCombine] fold lshr(mul X, SplatC), C2 2021-02-10 15:02:31 -05:00
InstCombineSimplifyDemanded.cpp [InstCombine] use poison as placeholder for undemanded elems 2020-12-28 08:58:15 +09:00
InstCombineVectorOps.cpp [InstCombine] Use is_contained (NFC) 2020-11-21 15:47:11 -08:00
InstructionCombining.cpp [instcombine] Exploit UB implied by nofree attributes 2021-02-18 08:34:22 -08:00