LLVM: include/llvm/Support/Discriminator.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_SUPPORT_DISCRIMINATOR_H

14#define LLVM_SUPPORT_DISCRIMINATOR_H

15

17#include <assert.h>

18

19

20

21

22

23

25 U &= 0xfff;

26 return U > 0x1f ? (((U & 0xfe0) << 1) | (U & 0x1f) | 0x20) : U;

27}

28

29

31 if (U & 1)

32 return 0;

33 U >>= 1;

34 return (U & 0x20) ? (((U >> 1) & 0xfe0) | (U & 0x1f)) : (U & 0x1f);

35}

36

37

39 if ((D & 1) == 0)

40 return D >> ((D & 0x40) ? 14 : 7);

41 else

42 return D >> 1;

43}

44

48

50 return (C == 0) ? 1 : (C > 0x1f ? 14 : 7);

51}

52

53

54

55namespace llvm {

66}

67

68

69

71

72

74

75

76

77

78

79

80

81

85

86

88 unsigned I = static_cast<unsigned>(P);

91}

92

93

96 return 0;

97 unsigned I = static_cast<unsigned>(P);

100 1;

101}

102

103

108

109

114

115

117

118

122

123

125

126 if (N == 31)

127 return 0xFFFFFFFF;

128 assert((N < 32) && "N is invalid");

129 return (1U << (N + 1)) - 1;

130}

131

132}

133

134#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")

static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")

static unsigned getPrefixEncodingFromUnsigned(unsigned U)

With a given unsigned int U, use up to 13 bits to represent it.

Definition Discriminator.h:24

static unsigned encodingBits(unsigned C)

Definition Discriminator.h:49

static unsigned encodeComponent(unsigned C)

Definition Discriminator.h:45

static unsigned getNextComponentInDiscriminator(unsigned D)

Returns the next component stored in discriminator.

Definition Discriminator.h:38

static unsigned getUnsignedFromPrefixEncoding(unsigned U)

Reverse transformation as getPrefixEncodingFromUnsigned.

Definition Discriminator.h:30

FSDiscriminatorPass

Definition Discriminator.h:57

@ PassLast

Definition Discriminator.h:64

@ Pass2

Definition Discriminator.h:61

@ Pass4

Definition Discriminator.h:63

@ Pass1

Definition Discriminator.h:60

@ Pass3

Definition Discriminator.h:62

@ Pass0

Definition Discriminator.h:59

@ Base

Definition Discriminator.h:58

This is an optimization pass for GlobalISel generic memory operations.

static int getLastFSPassBitBegin()

Definition Discriminator.h:104

static unsigned getFSPassBitBegin(sampleprof::FSDiscriminatorPass P)

Definition Discriminator.h:94

static unsigned getNumFSPasses()

Definition Discriminator.h:82

static unsigned getBaseFSBitBegin()

Definition Discriminator.h:116

static unsigned getFSPassBitEnd(sampleprof::FSDiscriminatorPass P)

Definition Discriminator.h:87

static unsigned getBaseFSBitEnd()

Definition Discriminator.h:119

static unsigned getN1Bits(int N)

Definition Discriminator.h:124

static unsigned getLastFSPassBitEnd()

Definition Discriminator.h:110

static const unsigned FSDiscriminatorBitWidth

Definition Discriminator.h:73

static const unsigned BaseDiscriminatorBitWidth

Definition Discriminator.h:70