LLVM
20.0.0git
include
llvm
Remarks
BitstreamRemarkContainer.h
Go to the documentation of this file.
1
//===-- BitstreamRemarkContainer.h - Container for remarks --------------*-===//
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
// This file provides declarations for things used in the various types of
10
// remark containers.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_REMARKS_BITSTREAMREMARKCONTAINER_H
15
#define LLVM_REMARKS_BITSTREAMREMARKCONTAINER_H
16
17
#include "
llvm/ADT/StringRef.h
"
18
#include "
llvm/Bitstream/BitCodes.h
"
19
#include <cstdint>
20
21
namespace
llvm
{
22
namespace
remarks {
23
24
/// The current version of the remark container.
25
/// Note: this is different from the version of the remark entry.
26
constexpr
uint64_t
CurrentContainerVersion
= 0;
27
/// The magic number used for identifying remark blocks.
28
constexpr
StringLiteral
ContainerMagic
(
"RMRK"
);
29
30
/// Type of the remark container.
31
/// The remark container has two modes:
32
/// * separate: the metadata is separate from the remarks and points to the
33
/// auxiliary file that contains the remarks.
34
/// * standalone: the metadata and the remarks are emitted together.
35
enum class
BitstreamRemarkContainerType
{
36
/// The metadata emitted separately.
37
/// This will contain the following:
38
/// * Container version and type
39
/// * String table
40
/// * External file
41
SeparateRemarksMeta
,
42
/// The remarks emitted separately.
43
/// This will contain the following:
44
/// * Container version and type
45
/// * Remark version
46
SeparateRemarksFile
,
47
/// Everything is emitted together.
48
/// This will contain the following:
49
/// * Container version and type
50
/// * Remark version
51
/// * String table
52
Standalone
,
53
First
=
SeparateRemarksMeta
,
54
Last
=
Standalone
,
55
};
56
57
/// The possible blocks that will be encountered in a bitstream remark
58
/// container.
59
enum
BlockIDs
{
60
/// The metadata block is mandatory. It should always come after the
61
/// BLOCKINFO_BLOCK, and contains metadata that should be used when parsing
62
/// REMARK_BLOCKs.
63
/// There should always be only one META_BLOCK.
64
META_BLOCK_ID
=
bitc::FIRST_APPLICATION_BLOCKID
,
65
/// One remark entry is represented using a REMARK_BLOCK. There can be
66
/// multiple REMARK_BLOCKs in the same file.
67
REMARK_BLOCK_ID
68
};
69
70
constexpr
StringRef
MetaBlockName
=
StringRef
(
"Meta"
, 4);
71
constexpr
StringRef
RemarkBlockName
=
StringRef
(
"Remark"
, 6);
72
73
/// The possible records that can be encountered in the previously described
74
/// blocks.
75
enum
RecordIDs
{
76
// Meta block records.
77
RECORD_META_CONTAINER_INFO
= 1,
78
RECORD_META_REMARK_VERSION
,
79
RECORD_META_STRTAB
,
80
RECORD_META_EXTERNAL_FILE
,
81
// Remark block records.
82
RECORD_REMARK_HEADER
,
83
RECORD_REMARK_DEBUG_LOC
,
84
RECORD_REMARK_HOTNESS
,
85
RECORD_REMARK_ARG_WITH_DEBUGLOC
,
86
RECORD_REMARK_ARG_WITHOUT_DEBUGLOC
,
87
// Helpers.
88
RECORD_FIRST
=
RECORD_META_CONTAINER_INFO
,
89
RECORD_LAST
=
RECORD_REMARK_ARG_WITHOUT_DEBUGLOC
90
};
91
92
constexpr
StringRef
MetaContainerInfoName
=
StringRef
(
"Container info"
, 14);
93
constexpr
StringRef
MetaRemarkVersionName
=
StringRef
(
"Remark version"
, 14);
94
constexpr
StringRef
MetaStrTabName
=
StringRef
(
"String table"
, 12);
95
constexpr
StringRef
MetaExternalFileName
=
StringRef
(
"External File"
, 13);
96
constexpr
StringRef
RemarkHeaderName
=
StringRef
(
"Remark header"
, 13);
97
constexpr
StringRef
RemarkDebugLocName
=
StringRef
(
"Remark debug location"
, 21);
98
constexpr
StringRef
RemarkHotnessName
=
StringRef
(
"Remark hotness"
, 14);
99
constexpr
StringRef
RemarkArgWithDebugLocName
=
100
StringRef
(
"Argument with debug location"
, 28);
101
constexpr
StringRef
RemarkArgWithoutDebugLocName
=
StringRef
(
"Argument"
, 8);
102
103
}
// end namespace remarks
104
}
// end namespace llvm
105
106
#endif
// LLVM_REMARKS_BITSTREAMREMARKCONTAINER_H
BitCodes.h
StringRef.h
llvm::StringLiteral
A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...
Definition:
StringRef.h:853
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition:
StringRef.h:51
uint64_t
llvm::bitc::FIRST_APPLICATION_BLOCKID
@ FIRST_APPLICATION_BLOCKID
Definition:
BitCodeEnums.h:72
llvm::remarks::RemarkBlockName
constexpr StringRef RemarkBlockName
Definition:
BitstreamRemarkContainer.h:71
llvm::remarks::BitstreamRemarkContainerType
BitstreamRemarkContainerType
Type of the remark container.
Definition:
BitstreamRemarkContainer.h:35
llvm::remarks::BitstreamRemarkContainerType::SeparateRemarksFile
@ SeparateRemarksFile
The remarks emitted separately.
llvm::remarks::BitstreamRemarkContainerType::SeparateRemarksMeta
@ SeparateRemarksMeta
The metadata emitted separately.
llvm::remarks::BitstreamRemarkContainerType::Standalone
@ Standalone
Everything is emitted together.
llvm::remarks::BitstreamRemarkContainerType::First
@ First
llvm::remarks::BitstreamRemarkContainerType::Last
@ Last
llvm::remarks::RemarkHotnessName
constexpr StringRef RemarkHotnessName
Definition:
BitstreamRemarkContainer.h:98
llvm::remarks::BlockIDs
BlockIDs
The possible blocks that will be encountered in a bitstream remark container.
Definition:
BitstreamRemarkContainer.h:59
llvm::remarks::REMARK_BLOCK_ID
@ REMARK_BLOCK_ID
One remark entry is represented using a REMARK_BLOCK.
Definition:
BitstreamRemarkContainer.h:67
llvm::remarks::META_BLOCK_ID
@ META_BLOCK_ID
The metadata block is mandatory.
Definition:
BitstreamRemarkContainer.h:64
llvm::remarks::RemarkArgWithDebugLocName
constexpr StringRef RemarkArgWithDebugLocName
Definition:
BitstreamRemarkContainer.h:99
llvm::remarks::MetaStrTabName
constexpr StringRef MetaStrTabName
Definition:
BitstreamRemarkContainer.h:94
llvm::remarks::CurrentContainerVersion
constexpr uint64_t CurrentContainerVersion
The current version of the remark container.
Definition:
BitstreamRemarkContainer.h:26
llvm::remarks::MetaRemarkVersionName
constexpr StringRef MetaRemarkVersionName
Definition:
BitstreamRemarkContainer.h:93
llvm::remarks::MetaBlockName
constexpr StringRef MetaBlockName
Definition:
BitstreamRemarkContainer.h:70
llvm::remarks::MetaContainerInfoName
constexpr StringRef MetaContainerInfoName
Definition:
BitstreamRemarkContainer.h:92
llvm::remarks::RemarkHeaderName
constexpr StringRef RemarkHeaderName
Definition:
BitstreamRemarkContainer.h:96
llvm::remarks::ContainerMagic
constexpr StringLiteral ContainerMagic("RMRK")
The magic number used for identifying remark blocks.
llvm::remarks::MetaExternalFileName
constexpr StringRef MetaExternalFileName
Definition:
BitstreamRemarkContainer.h:95
llvm::remarks::RemarkArgWithoutDebugLocName
constexpr StringRef RemarkArgWithoutDebugLocName
Definition:
BitstreamRemarkContainer.h:101
llvm::remarks::RecordIDs
RecordIDs
The possible records that can be encountered in the previously described blocks.
Definition:
BitstreamRemarkContainer.h:75
llvm::remarks::RECORD_META_REMARK_VERSION
@ RECORD_META_REMARK_VERSION
Definition:
BitstreamRemarkContainer.h:78
llvm::remarks::RECORD_FIRST
@ RECORD_FIRST
Definition:
BitstreamRemarkContainer.h:88
llvm::remarks::RECORD_META_STRTAB
@ RECORD_META_STRTAB
Definition:
BitstreamRemarkContainer.h:79
llvm::remarks::RECORD_LAST
@ RECORD_LAST
Definition:
BitstreamRemarkContainer.h:89
llvm::remarks::RECORD_REMARK_ARG_WITHOUT_DEBUGLOC
@ RECORD_REMARK_ARG_WITHOUT_DEBUGLOC
Definition:
BitstreamRemarkContainer.h:86
llvm::remarks::RECORD_REMARK_ARG_WITH_DEBUGLOC
@ RECORD_REMARK_ARG_WITH_DEBUGLOC
Definition:
BitstreamRemarkContainer.h:85
llvm::remarks::RECORD_META_CONTAINER_INFO
@ RECORD_META_CONTAINER_INFO
Definition:
BitstreamRemarkContainer.h:77
llvm::remarks::RECORD_REMARK_HOTNESS
@ RECORD_REMARK_HOTNESS
Definition:
BitstreamRemarkContainer.h:84
llvm::remarks::RECORD_REMARK_HEADER
@ RECORD_REMARK_HEADER
Definition:
BitstreamRemarkContainer.h:82
llvm::remarks::RECORD_REMARK_DEBUG_LOC
@ RECORD_REMARK_DEBUG_LOC
Definition:
BitstreamRemarkContainer.h:83
llvm::remarks::RECORD_META_EXTERNAL_FILE
@ RECORD_META_EXTERNAL_FILE
Definition:
BitstreamRemarkContainer.h:80
llvm::remarks::RemarkDebugLocName
constexpr StringRef RemarkDebugLocName
Definition:
BitstreamRemarkContainer.h:97
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
Generated on Sat Dec 21 2024 21:03:39 for LLVM by
1.9.6