18 #ifndef LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H 19 #define LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H 36 : SignedOp(InSignedOp), Dividend(InDividend), Divisor(InDivisor) {}
54 return (
unsigned)(
reinterpret_cast<uintptr_t
>(Val.
Dividend) ^
55 reinterpret_cast<uintptr_t>(Val.
Divisor)) ^
70 #endif // LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H This class represents lattice values for constants.
static DivRemMapKey getEmptyKey()
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...
LLVM Basic Block Representation.
static unsigned getHashValue(const DivRemMapKey &Val)
static bool isEqual(const DivRemMapKey &Val1, const DivRemMapKey &Val2)
DivRemMapKey(bool InSignedOp, Value *InDividend, Value *InDivisor)
LLVM Value Representation.
static DivRemMapKey getTombstoneKey()