LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::TextCodeGenDataReader Class Reference

This format is a simple text format that's suitable for test data. More...

#include "llvm/CGData/CodeGenDataReader.h"

Inheritance diagram for llvm::TextCodeGenDataReader:
Inheritance graph
[legend]

Public Member Functions

 TextCodeGenDataReader (std::unique_ptr< MemoryBuffer > DataBuffer_)
 
 TextCodeGenDataReader (const TextCodeGenDataReader &)=delete
 
TextCodeGenDataReaderoperator= (const TextCodeGenDataReader &)=delete
 
Error read () override
 Read the contents including the header.
 
uint32_t getVersion () const override
 Text format does not have version, so return 0.
 
CGDataKind getDataKind () const override
 Return the codegen data kind.
 
bool hasOutlinedHashTree () const override
 Return true if the header indicates the data has an outlined hash tree.
 
bool hasStableFunctionMap () const override
 Return true if the header indicates the data has a stable function map.
 
- Public Member Functions inherited from llvm::CodeGenDataReader
 CodeGenDataReader ()=default
 
virtual ~CodeGenDataReader ()=default
 
virtual Error read ()=0
 Read the header. Required before reading first record.
 
virtual uint32_t getVersion () const =0
 Return the codegen data version.
 
virtual CGDataKind getDataKind () const =0
 Return the codegen data kind.
 
virtual bool hasOutlinedHashTree () const =0
 Return true if the data has an outlined hash tree.
 
virtual bool hasStableFunctionMap () const =0
 Return true if the data has a stable function map.
 
std::unique_ptr< OutlinedHashTreereleaseOutlinedHashTree ()
 Return the outlined hash tree that is released from the reader.
 
std::unique_ptr< StableFunctionMapreleaseStableFunctionMap ()
 

Static Public Member Functions

static bool hasFormat (const MemoryBuffer &Buffer)
 Return true if the given buffer is in text codegen data format.
 
- Static Public Member Functions inherited from llvm::CodeGenDataReader
static Expected< std::unique_ptr< CodeGenDataReader > > create (const Twine &Path, vfs::FileSystem &FS)
 Factory method to create an appropriately typed reader for the given codegen data file path and file system.
 
static Expected< std::unique_ptr< CodeGenDataReader > > create (std::unique_ptr< MemoryBuffer > Buffer)
 Factory method to create an appropriately typed reader for the given memory buffer.
 
static Error mergeFromObjectFile (const object::ObjectFile *Obj, OutlinedHashTreeRecord &GlobalOutlineRecord, StableFunctionMapRecord &GlobalFunctionMapRecord, stable_hash *CombinedHash=nullptr)
 Extract the cgdata embedded in sections from the given object file and merge them into the GlobalOutlineRecord.
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::CodeGenDataReader
Error error (cgdata_error Err, const std::string &ErrMsg="")
 Set the current error and return same.
 
Error error (Error &&E)
 
Error success ()
 Clear the current error and return a successful one.
 
- Protected Attributes inherited from llvm::CodeGenDataReader
OutlinedHashTreeRecord HashTreeRecord
 The outlined hash tree that has been read.
 
StableFunctionMapRecord FunctionMapRecord
 The stable function map that has been read. When it's released by.
 

Detailed Description

This format is a simple text format that's suitable for test data.

The header is a custom format starting with : per line to indicate which codegen data is recorded. # is used to indicate a comment. The subsequent data is a YAML format per each codegen data in order. Currently, it only has a function outlined hash tree.

Definition at line 142 of file CodeGenDataReader.h.

Constructor & Destructor Documentation

◆ TextCodeGenDataReader() [1/2]

llvm::TextCodeGenDataReader::TextCodeGenDataReader ( std::unique_ptr< MemoryBuffer DataBuffer_)
inline

Definition at line 151 of file CodeGenDataReader.h.

◆ TextCodeGenDataReader() [2/2]

llvm::TextCodeGenDataReader::TextCodeGenDataReader ( const TextCodeGenDataReader )
delete

Member Function Documentation

◆ getDataKind()

CGDataKind llvm::TextCodeGenDataReader::getDataKind ( ) const
inlineoverridevirtual

Return the codegen data kind.

Implements llvm::CodeGenDataReader.

Definition at line 163 of file CodeGenDataReader.h.

◆ getVersion()

uint32_t llvm::TextCodeGenDataReader::getVersion ( ) const
inlineoverridevirtual

Text format does not have version, so return 0.

Implements llvm::CodeGenDataReader.

Definition at line 161 of file CodeGenDataReader.h.

◆ hasFormat()

bool llvm::TextCodeGenDataReader::hasFormat ( const MemoryBuffer Buffer)
static

Return true if the given buffer is in text codegen data format.

Definition at line 156 of file CodeGenDataReader.cpp.

References llvm::all_of(), llvm::MemoryBuffer::getBuffer(), and llvm::StringRef::take_front().

Referenced by llvm::CodeGenDataReader::create().

◆ hasOutlinedHashTree()

bool llvm::TextCodeGenDataReader::hasOutlinedHashTree ( ) const
inlineoverridevirtual

Return true if the header indicates the data has an outlined hash tree.

This does not mean that the data is still available.

Implements llvm::CodeGenDataReader.

Definition at line 166 of file CodeGenDataReader.h.

References llvm::FunctionOutlinedHashTree.

Referenced by read().

◆ hasStableFunctionMap()

bool llvm::TextCodeGenDataReader::hasStableFunctionMap ( ) const
inlineoverridevirtual

Return true if the header indicates the data has a stable function map.

This does not mean that the data is still available.

Implements llvm::CodeGenDataReader.

Definition at line 172 of file CodeGenDataReader.h.

References llvm::StableFunctionMergingMap.

Referenced by read().

◆ operator=()

TextCodeGenDataReader & llvm::TextCodeGenDataReader::operator= ( const TextCodeGenDataReader )
delete

◆ read()

Error llvm::TextCodeGenDataReader::read ( )
overridevirtual

The documentation for this class was generated from the following files: