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