LLVM 20.0.0git
|
Classes | |
struct | Argument |
A key-value pair with a debug location that is used to display the remarks at the right place in the source. More... | |
struct | BitstreamMetaParserHelper |
Helper to parse a META_BLOCK for a bitstream remark container. More... | |
struct | BitstreamMetaSerializer |
Serializer of metadata for bitstream remarks. More... | |
struct | BitstreamParserHelper |
Helper to parse any bitstream remark container. More... | |
struct | BitstreamRemarkParser |
Parses and holds the state of the latest parsed remark. More... | |
struct | BitstreamRemarkParserHelper |
Helper to parse a REMARK_BLOCK for a bitstream remark container. More... | |
struct | BitstreamRemarkSerializer |
Implementation of the remark serializer using LLVM bitstream. More... | |
struct | BitstreamRemarkSerializerHelper |
Serialize the remarks to LLVM bitstream. More... | |
class | EndOfFileError |
class | HotnessThresholdParser |
struct | MetaSerializer |
This is the base class for a remark metadata serializer. More... | |
struct | ParsedStringTable |
In-memory representation of the string table parsed from a buffer (e.g. More... | |
struct | Remark |
A remark type used for both emission and parsing. More... | |
struct | RemarkLinker |
struct | RemarkLocation |
The debug location used to track a remark back to the source file. More... | |
struct | RemarkParser |
Parser used to parse a raw buffer to remarks::Remark objects. More... | |
struct | RemarkSerializer |
This is the base class for a remark serializer. More... | |
class | RemarkStreamer |
struct | StringTable |
The string table used for serializing remarks. More... | |
struct | YAMLMetaSerializer |
class | YAMLParseError |
struct | YAMLRemarkParser |
Regular YAML to Remark parser. More... | |
struct | YAMLRemarkSerializer |
Serialize the remarks to YAML. More... | |
struct | YAMLStrTabMetaSerializer |
struct | YAMLStrTabRemarkParser |
YAML with a string table to Remark parser. More... | |
struct | YAMLStrTabRemarkSerializer |
Serialize the remarks to YAML using a string table. More... | |
Enumerations | |
enum class | BitstreamRemarkContainerType { SeparateRemarksMeta , SeparateRemarksFile , Standalone , First = SeparateRemarksMeta , Last = Standalone } |
Type of the remark container. More... | |
enum | BlockIDs { META_BLOCK_ID = bitc::FIRST_APPLICATION_BLOCKID , REMARK_BLOCK_ID } |
The possible blocks that will be encountered in a bitstream remark container. More... | |
enum | RecordIDs { RECORD_META_CONTAINER_INFO = 1 , RECORD_META_REMARK_VERSION , RECORD_META_STRTAB , RECORD_META_EXTERNAL_FILE , RECORD_REMARK_HEADER , RECORD_REMARK_DEBUG_LOC , RECORD_REMARK_HOTNESS , RECORD_REMARK_ARG_WITH_DEBUGLOC , RECORD_REMARK_ARG_WITHOUT_DEBUGLOC , RECORD_FIRST = RECORD_META_CONTAINER_INFO , RECORD_LAST = RECORD_REMARK_ARG_WITHOUT_DEBUGLOC } |
The possible records that can be encountered in the previously described blocks. More... | |
enum class | Type { Unknown , Passed , Missed , Analysis , AnalysisFPCommute , AnalysisAliasing , Failure , First = Unknown , Last = Failure } |
The type of the remark. More... | |
enum class | Format { Unknown , YAML , YAMLStrTab , Bitstream } |
The format used for serializing/deserializing remarks. More... | |
enum class | SerializerMode { Separate , Standalone } |
Variables | |
constexpr uint64_t | CurrentContainerVersion = 0 |
The current version of the remark container. | |
constexpr StringRef | MetaBlockName = StringRef("Meta", 4) |
constexpr StringRef | RemarkBlockName = StringRef("Remark", 6) |
constexpr StringRef | MetaContainerInfoName = StringRef("Container info", 14) |
constexpr StringRef | MetaRemarkVersionName = StringRef("Remark version", 14) |
constexpr StringRef | MetaStrTabName = StringRef("String table", 12) |
constexpr StringRef | MetaExternalFileName = StringRef("External File", 13) |
constexpr StringRef | RemarkHeaderName = StringRef("Remark header", 13) |
constexpr StringRef | RemarkDebugLocName = StringRef("Remark debug location", 21) |
constexpr StringRef | RemarkHotnessName = StringRef("Remark hotness", 14) |
constexpr StringRef | RemarkArgWithDebugLocName |
constexpr StringRef | RemarkArgWithoutDebugLocName = StringRef("Argument", 8) |
constexpr uint64_t | CurrentRemarkVersion = 0 |
The current version of the remark entry. | |
|
strong |
Type of the remark container.
The remark container has two modes:
Enumerator | |
---|---|
SeparateRemarksMeta | The metadata emitted separately. This will contain the following:
|
SeparateRemarksFile | The remarks emitted separately. This will contain the following:
|
Standalone | Everything is emitted together. This will contain the following:
|
First | |
Last |
Definition at line 35 of file BitstreamRemarkContainer.h.
The possible blocks that will be encountered in a bitstream remark container.
Definition at line 59 of file BitstreamRemarkContainer.h.
|
strong |
The format used for serializing/deserializing remarks.
Enumerator | |
---|---|
Unknown | |
YAML | |
YAMLStrTab | |
Bitstream |
Definition at line 25 of file RemarkFormat.h.
The possible records that can be encountered in the previously described blocks.
Definition at line 75 of file BitstreamRemarkContainer.h.
|
strong |
Enumerator | |
---|---|
Separate | |
Standalone |
Definition at line 28 of file RemarkSerializer.h.
|
strong |
The type of the remark.
MessagePack types as defined in the standard, with the exception of Integer being divided into a signed Int and unsigned UInt variant in order to map directly to C++ types.
The types map onto corresponding union members of the Object
struct.
Enumerator | |
---|---|
Unknown | |
Passed | |
Missed | |
Analysis | |
AnalysisFPCommute | |
AnalysisAliasing | |
Failure | |
First | |
Last |
|
constexpr |
The magic number used for identifying remark blocks.
Referenced by magicToFormat(), llvm::remarks::BitstreamRemarkSerializerHelper::setupBlockInfo(), and validateMagicNumber().
Expected< std::unique_ptr< BitstreamRemarkParser > > llvm::remarks::createBitstreamParserFromMeta | ( | StringRef | Buf, |
std::optional< ParsedStringTable > | StrTab = std::nullopt , |
||
std::optional< StringRef > | ExternalFilePrependPath = std::nullopt |
||
) |
Definition at line 310 of file BitstreamRemarkParser.cpp.
References llvm::remarks::BitstreamParserHelper::parseMagic(), and validateMagicNumber().
Referenced by createRemarkParserFromMeta().
Expected< std::unique_ptr< RemarkParser > > llvm::remarks::createRemarkParser | ( | Format | ParserFormat, |
StringRef | Buf | ||
) |
Definition at line 52 of file RemarkParser.cpp.
References Bitstream, llvm::createStringError(), llvm_unreachable, Unknown, YAML, and YAMLStrTab.
Expected< std::unique_ptr< RemarkParser > > llvm::remarks::createRemarkParser | ( | Format | ParserFormat, |
StringRef | Buf, | ||
ParsedStringTable | StrTab | ||
) |
Definition at line 70 of file RemarkParser.cpp.
References Bitstream, llvm::createStringError(), llvm_unreachable, Unknown, YAML, and YAMLStrTab.
Expected< std::unique_ptr< RemarkParser > > llvm::remarks::createRemarkParserFromMeta | ( | Format | ParserFormat, |
StringRef | Buf, | ||
std::optional< ParsedStringTable > | StrTab = std::nullopt , |
||
std::optional< StringRef > | ExternalFilePrependPath = std::nullopt |
||
) |
Definition at line 89 of file RemarkParser.cpp.
References Bitstream, createBitstreamParserFromMeta(), llvm::createStringError(), createYAMLParserFromMeta(), llvm_unreachable, Unknown, YAML, and YAMLStrTab.
Referenced by llvm::remarks::RemarkLinker::link().
Expected< std::unique_ptr< RemarkSerializer > > llvm::remarks::createRemarkSerializer | ( | Format | RemarksFormat, |
SerializerMode | Mode, | ||
raw_ostream & | OS | ||
) |
Create a remark serializer.
Definition at line 21 of file RemarkSerializer.cpp.
References llvm::createStringError(), llvm_unreachable, OS, and llvm::RemarksFormat.
Referenced by llvm::remarks::RemarkLinker::serialize(), and llvm::setupLLVMOptimizationRemarks().
Expected< std::unique_ptr< RemarkSerializer > > llvm::remarks::createRemarkSerializer | ( | Format | RemarksFormat, |
SerializerMode | Mode, | ||
raw_ostream & | OS, | ||
remarks::StringTable | StrTab | ||
) |
Create a remark serializer that uses a pre-filled string table.
Definition at line 38 of file RemarkSerializer.cpp.
References llvm::createStringError(), llvm_unreachable, OS, and llvm::RemarksFormat.
Expected< std::unique_ptr< YAMLRemarkParser > > llvm::remarks::createYAMLParserFromMeta | ( | StringRef | Buf, |
std::optional< ParsedStringTable > | StrTab = std::nullopt , |
||
std::optional< StringRef > | ExternalFilePrependPath = std::nullopt |
||
) |
Definition at line 110 of file YAMLRemarkParser.cpp.
References llvm::sys::path::append(), llvm::createFileError(), llvm::createStringError(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), parseMagic(), parseStrTab(), parseStrTabSize(), parseVersion(), llvm::StringRef::starts_with(), llvm::Expected< T >::takeError(), and llvm::Version.
Referenced by createRemarkParserFromMeta().
Expected< std::optional< StringRef > > llvm::remarks::getRemarksSectionContents | ( | const object::ObjectFile & | Obj | ) |
Returns a buffer with the contents of the remarks section depending on the format of the file.
If the section doesn't exist, this returns an empty optional.
Definition at line 39 of file RemarkLinker.cpp.
References getRemarksSectionName(), llvm::object::ObjectFile::sections(), and llvm::Expected< T >::takeError().
Referenced by llvm::remarks::RemarkLinker::link().
|
constexpr |
Referenced by emitMagic(), magicToFormat(), and parseMagic().
Parse and validate a magic number to a remark format.
Definition at line 35 of file RemarkFormat.cpp.
References ContainerMagic(), llvm::createStringError(), llvm::StringRef::data(), llvm::StringSwitch< T, R >::Default(), Magic(), and llvm::StringSwitch< T, R >::StartsWith().
Referenced by llvm::remarks::RemarkLinker::link().
|
inline |
|
inline |
|
inline |
Definition at line 212 of file Remark.h.
References OS, and llvm::remarks::Argument::print().
|
inline |
Definition at line 217 of file Remark.h.
References OS, and llvm::remarks::Remark::print().
|
inline |
Definition at line 207 of file Remark.h.
References OS, and llvm::remarks::RemarkLocation::print().
Definition at line 176 of file Remark.h.
References LHS, llvm::operator==(), and RHS.
Definition at line 189 of file Remark.h.
References LHS, llvm::operator==(), and RHS.
|
inline |
Definition at line 161 of file Remark.h.
References LHS, llvm::operator==(), and RHS.
Parse and validate a string for the remark format.
Definition at line 20 of file RemarkFormat.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::createStringError(), llvm::StringRef::data(), and llvm::StringSwitch< T, R >::Default().
Referenced by llvm::setupLLVMOptimizationRemarks().
|
inline |
Definition at line 32 of file HotnessThresholdParser.h.
References llvm::createStringError(), llvm::StringRef::data(), llvm::StringRef::getAsInteger(), and llvm::inconvertibleErrorCode().
Referenced by llvm::remarks::HotnessThresholdParser::parse().
Definition at line 77 of file Remark.h.
References Analysis, AnalysisAliasing, AnalysisFPCommute, Missed, Passed, and Unknown.
Referenced by llvm::remarks::Remark::print().
|
constexpr |
The current version of the remark container.
Note: this is different from the version of the remark entry.
Definition at line 26 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamMetaSerializer::emit().
|
constexpr |
The current version of the remark entry.
Definition at line 28 of file Remark.h.
Referenced by llvm::remarks::BitstreamMetaSerializer::emit(), emitVersion(), and parseVersion().
Definition at line 70 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupMetaBlockInfo().
|
constexpr |
Definition at line 92 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupMetaBlockInfo().
Definition at line 95 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupMetaExternalFile().
|
constexpr |
Definition at line 93 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupMetaRemarkVersion().
Definition at line 94 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupMetaStrTab().
|
constexpr |
Definition at line 99 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupRemarkBlockInfo().
|
constexpr |
Definition at line 101 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupRemarkBlockInfo().
Definition at line 71 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupRemarkBlockInfo().
|
constexpr |
Definition at line 97 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupRemarkBlockInfo().
Definition at line 96 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupRemarkBlockInfo().
Definition at line 98 of file BitstreamRemarkContainer.h.
Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::setupRemarkBlockInfo().