LLVM: include/llvm/Transforms/Utils/BypassSlowDivision.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#ifndef LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H
18#define LLVM_TRANSFORMS_UTILS_BYPASSSLOWDIVISION_H
19
23#include
24
25namespace llvm {
26
29
40
46
50
54
56 return (unsigned)(reinterpret_cast<uintptr_t>(
58 reinterpret_cast<uintptr_t>(
61 }
62};
63
64
65
66
67
68
71
72}
73
74#endif
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()
Definition BypassSlowDivision.h:47
static unsigned getHashValue(const DivRemMapKey &Val)
Definition BypassSlowDivision.h:55
static DivRemMapKey getTombstoneKey()
Definition BypassSlowDivision.h:51
static bool isEqual(const DivRemMapKey &Val1, const DivRemMapKey &Val2)
Definition BypassSlowDivision.h:42
An information struct used to provide DenseMap with the various necessary components for a given valu...
AssertingVH< Value > Divisor
Definition BypassSlowDivision.h:33
bool SignedOp
Definition BypassSlowDivision.h:31
DivRemMapKey(bool InSignedOp, Value *InDividend, Value *InDivisor)
Definition BypassSlowDivision.h:37
AssertingVH< Value > Dividend
Definition BypassSlowDivision.h:32