Go to the documentation of this file.
17 #ifndef LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H
18 #define LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H
56 return (
unsigned)(
reinterpret_cast<uintptr_t
>(
58 reinterpret_cast<uintptr_t
>(
70 BasicBlock *
BB,
const DenseMap<unsigned int, unsigned int> &BypassWidth);
74 #endif // LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H
bool bypassSlowDivision(BasicBlock *BB, const DenseMap< unsigned int, unsigned int > &BypassWidth)
This optimization identifies DIV instructions in a BB that can be profitably bypassed and carried out...
This class represents lattice values for constants.
static unsigned getHashValue(const DivRemMapKey &Val)
AssertingVH< Value > Divisor
DivRemMapKey(bool InSignedOp, Value *InDividend, Value *InDivisor)
static bool isEqual(const DivRemMapKey &Val1, const DivRemMapKey &Val2)
static DivRemMapKey getTombstoneKey()
static DivRemMapKey getEmptyKey()
AssertingVH< Value > Dividend
@ BasicBlock
Various leaf nodes.
Value handle that asserts if the Value is deleted.
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
LLVM Value Representation.