LLVM 22.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... | |
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 , Auto , YAML , 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 | |
Auto | |
YAML | |
Bitstream |
Definition at line 26 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 29 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< 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 53 of file RemarkParser.cpp.
References Auto, Bitstream, detectFormat(), llvm_unreachable, Unknown, and YAML.
Expected< std::unique_ptr< RemarkParser > > llvm::remarks::createRemarkParserFromMeta | ( | Format | ParserFormat, |
StringRef | Buf, | ||
std::optional< StringRef > | ExternalFilePrependPath = std::nullopt |
||
) |
Definition at line 71 of file RemarkParser.cpp.
References Auto, Bitstream, createBitstreamParserFromMeta(), createYAMLParserFromMeta(), detectFormat(), llvm_unreachable, Unknown, and YAML.
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 37 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< StringRef > | ExternalFilePrependPath = std::nullopt |
||
) |
Definition at line 98 of file YAMLRemarkParser.cpp.
References llvm::sys::path::append(), llvm::createFileError(), llvm::createStringError(), llvm::ErrorOr< T >::getError(), llvm::MemoryBuffer::getFile(), parseMagic(), parseStrTabSize(), parseVersion(), llvm::StringRef::starts_with(), llvm::Expected< T >::takeError(), and llvm::Version.
Referenced by createRemarkParserFromMeta().
Detect format based on selected format and magic number.
Definition at line 51 of file RemarkFormat.cpp.
References llvm::createStringError(), llvm::StringRef::empty(), and magicToFormat().
Referenced by createRemarkParser(), and 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 34 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 detectFormat().
|
inline |
|
inline |
|
inline |
Definition at line 213 of file Remark.h.
References OS, and llvm::remarks::Argument::print().
|
inline |
Definition at line 218 of file Remark.h.
References OS, and llvm::remarks::Remark::print().
|
inline |
Definition at line 208 of file Remark.h.
References OS, and llvm::remarks::RemarkLocation::print().
Definition at line 177 of file Remark.h.
References LHS, llvm::operator==(), and RHS.
Definition at line 190 of file Remark.h.
References LHS, llvm::operator==(), and RHS.
|
inline |
Definition at line 162 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 78 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 29 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().