LLVM
20.0.0git
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
:
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
y
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
o
p
r
s
t
u
v
w
z
Enumerations
_
a
b
c
d
e
f
g
h
i
j
l
m
o
p
q
r
s
t
u
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Examples
include
llvm
BinaryFormat
MsgPack.h
Go to the documentation of this file.
1
//===-- MsgPack.h - MessagePack Constants -----------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
///
9
/// \file
10
/// This file contains constants used for implementing MessagePack support.
11
///
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_BINARYFORMAT_MSGPACK_H
15
#define LLVM_BINARYFORMAT_MSGPACK_H
16
17
#include "
llvm/Support/DataTypes.h
"
18
#include "
llvm/Support/Endian.h
"
19
20
namespace
llvm
{
21
namespace
msgpack {
22
23
/// The endianness of all multi-byte encoded values in MessagePack.
24
constexpr
llvm::endianness
Endianness
=
llvm::endianness::big
;
25
26
/// The first byte identifiers of MessagePack object formats.
27
namespace
FirstByte {
28
#define HANDLE_MP_FIRST_BYTE(ID, NAME) constexpr uint8_t NAME = ID;
29
#include "llvm/BinaryFormat/MsgPack.def"
30
}
31
32
/// Most significant bits used to identify "Fix" variants in MessagePack.
33
///
34
/// For example, FixStr objects encode their size in the five least significant
35
/// bits of their first byte, which is identified by the bit pattern "101" in
36
/// the three most significant bits. So FixBits::String contains 0b10100000.
37
///
38
/// A corresponding mask of the bit pattern is found in \c FixBitsMask.
39
namespace
FixBits {
40
#define HANDLE_MP_FIX_BITS(ID, NAME) constexpr uint8_t NAME = ID;
41
#include "llvm/BinaryFormat/MsgPack.def"
42
}
43
44
/// Mask of bits used to identify "Fix" variants in MessagePack.
45
///
46
/// For example, FixStr objects encode their size in the five least significant
47
/// bits of their first byte, which is identified by the bit pattern "101" in
48
/// the three most significant bits. So FixBitsMask::String contains
49
/// 0b11100000.
50
///
51
/// The corresponding bit pattern to mask for is found in FixBits.
52
namespace
FixBitsMask {
53
#define HANDLE_MP_FIX_BITS_MASK(ID, NAME) constexpr uint8_t NAME = ID;
54
#include "llvm/BinaryFormat/MsgPack.def"
55
}
56
57
/// The maximum value or size encodable in "Fix" variants of formats.
58
///
59
/// For example, FixStr objects encode their size in the five least significant
60
/// bits of their first byte, so the largest encodable size is 0b00011111.
61
namespace
FixMax {
62
#define HANDLE_MP_FIX_MAX(ID, NAME) constexpr uint8_t NAME = ID;
63
#include "llvm/BinaryFormat/MsgPack.def"
64
}
65
66
/// The exact size encodable in "Fix" variants of formats.
67
///
68
/// The only objects for which an exact size makes sense are of Extension type.
69
///
70
/// For example, FixExt4 stores an extension type containing exactly four bytes.
71
namespace
FixLen {
72
#define HANDLE_MP_FIX_LEN(ID, NAME) constexpr uint8_t NAME = ID;
73
#include "llvm/BinaryFormat/MsgPack.def"
74
}
75
76
/// The minimum value or size encodable in "Fix" variants of formats.
77
///
78
/// The only object for which a minimum makes sense is a negative FixNum.
79
///
80
/// Negative FixNum objects encode their signed integer value in one byte, but
81
/// they must have the pattern "111" as their three most significant bits. This
82
/// means all values are negative, and the smallest representable value is
83
/// 0b11100000.
84
namespace
FixMin {
85
#define HANDLE_MP_FIX_MIN(ID, NAME) constexpr int8_t NAME = ID;
86
#include "llvm/BinaryFormat/MsgPack.def"
87
}
88
89
}
// end namespace msgpack
90
}
// end namespace llvm
91
92
#endif
// LLVM_BINARYFORMAT_MSGPACK_H
Endian.h
DataTypes.h
llvm::msgpack::Endianness
constexpr llvm::endianness Endianness
The endianness of all multi-byte encoded values in MessagePack.
Definition:
MsgPack.h:24
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::endianness
endianness
Definition:
bit.h:70
llvm::endianness::big
@ big
Generated on Wed Mar 5 2025 01:36:03 for LLVM by
1.9.6