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
>(
This file defines DenseMapInfo traits for DenseMap.
This file defines the DenseMap class.
Value handle that asserts if the Value is deleted.
LLVM Basic Block Representation.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.
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...
static DivRemMapKey getEmptyKey()
static unsigned getHashValue(const DivRemMapKey &Val)
static DivRemMapKey getTombstoneKey()
static bool isEqual(const DivRemMapKey &Val1, const DivRemMapKey &Val2)
An information struct used to provide DenseMap with the various necessary components for a given valu...
AssertingVH< Value > Divisor
DivRemMapKey(bool InSignedOp, Value *InDividend, Value *InDivisor)
AssertingVH< Value > Dividend