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
Craig Topper 879361c40b [InstCombine] Use less bitwise operations to handle Instruction::SExt in SimplifyDemandedUseBits. Other improvements.
The current code created a NewBits mask and used it as a mask several times. One of them just before a call to trunc making it unnecessary. A call to getActiveBits can get us the same information for the case. We also ORed with this mask later when we should have just sign extended the known bits.

We also called trunc on the guaranteed to be zero KnownZeros/Ones masks entering this code. Creating appropriately sized temporary APInts is probably better.

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

llvm-svn: 303779
2017-05-24 17:33:30 +00:00
..
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
InstCombineAddSub.cpp [ValueTracking] Convert most of the calls to computeKnownBits to use the version that returns the KnownBits object. 2017-05-24 16:53:07 +00:00
InstCombineAndOrXor.cpp [InstCombine] add helper to foldXorOfICmps(); NFCI 2017-05-18 20:53:16 +00:00
InstCombineCalls.cpp [ValueTracking] Convert most of the calls to computeKnownBits to use the version that returns the KnownBits object. 2017-05-24 16:53:07 +00:00
InstCombineCasts.cpp [ValueTracking] Convert most of the calls to computeKnownBits to use the version that returns the KnownBits object. 2017-05-24 16:53:07 +00:00
InstCombineCompares.cpp [ValueTracking] Convert most of the calls to computeKnownBits to use the version that returns the KnownBits object. 2017-05-24 16:53:07 +00:00
InstCombineInternal.h [InstCombine] Cleanup the interface for overflow checks 2017-05-22 06:25:31 +00:00
InstCombineLoadStoreAlloca.cpp [ValueTracking] Replace all uses of ComputeSignBit with computeKnownBits. 2017-05-15 06:39:41 +00:00
InstCombineMulDivRem.cpp [InstCombine] Cleanup the interface for overflow checks 2017-05-22 06:25:31 +00:00
InstCombinePHI.cpp InstCombine: Use the new SimplifyQuery versions of Simplify*. Use AssumptionCache, DominatorTree, TargetLibraryInfo everywhere. 2017-04-26 20:56:07 +00:00
InstCombineSelect.cpp InstCombine: Use the new SimplifyQuery versions of Simplify*. Use AssumptionCache, DominatorTree, TargetLibraryInfo everywhere. 2017-04-26 20:56:07 +00:00
InstCombineShifts.cpp InstCombine: Use the new SimplifyQuery versions of Simplify*. Use AssumptionCache, DominatorTree, TargetLibraryInfo everywhere. 2017-04-26 20:56:07 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Use less bitwise operations to handle Instruction::SExt in SimplifyDemandedUseBits. Other improvements. 2017-05-24 17:33:30 +00:00
InstCombineVectorOps.cpp InstCombine: Use the new SimplifyQuery versions of Simplify*. Use AssumptionCache, DominatorTree, TargetLibraryInfo everywhere. 2017-04-26 20:56:07 +00:00
InstructionCombining.cpp [ValueTracking] Convert most of the calls to computeKnownBits to use the version that returns the KnownBits object. 2017-05-24 16:53:07 +00:00
LLVMBuild.txt