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