gem5 v24.0.0.0
Loading...
Searching...
No Matches
gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT > Class Template Reference

A pattern that checks if dictionary entry sized values are solely composed of multiple copies of a single value. More...

#include <dictionary_compressor.hh>

Inheritance diagram for gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT >:
gem5::compression::DictionaryCompressor< T >::Pattern

Public Member Functions

 RepeatedValuePattern (const int number, const uint64_t code, const uint64_t metadata_length, const int match_location, const DictionaryEntry bytes, const bool allocate=true)
 
DictionaryEntry decompress (const DictionaryEntry dict_bytes) const override
 Decompress the pattern.
 
- Public Member Functions inherited from gem5::compression::DictionaryCompressor< T >::Pattern
 Pattern (const int number, const uint64_t code, const uint64_t metadata_length, const uint64_t num_unmatched_bits, const int match_location, const bool allocate=true)
 Default constructor.
 
virtual ~Pattern ()=default
 Default destructor.
 
int getPatternNumber () const
 Get enum number associated to this pattern.
 
uint8_t getCode () const
 Get code of this pattern.
 
uint8_t getMatchLocation () const
 Get the index of the dictionary match location.
 
virtual std::size_t getSizeBits () const
 Get size, in bits, of the pattern (excluding prefix).
 
bool shouldAllocate () const
 Determine if pattern allocates a dictionary entry.
 
std::string print () const
 Extract pattern's information to a string.
 

Static Public Member Functions

static bool isPattern (const DictionaryEntry &bytes, const DictionaryEntry &dict_bytes, const int match_location)
 

Private Attributes

RepT value
 The repeated value.
 

Additional Inherited Members

- Protected Attributes inherited from gem5::compression::DictionaryCompressor< T >::Pattern
const int patternNumber
 Pattern enum number.
 
const uint8_t code
 Code associated to the pattern.
 
const uint8_t length
 Length, in bits, of the code and match location.
 
const uint8_t numUnmatchedBits
 Number of unmatched bits.
 
const int matchLocation
 Index representing the the match location.
 
const bool allocate
 Wether the pattern allocates a dictionary entry or not.
 

Detailed Description

template<class T>
template<class RepT>
class gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT >

A pattern that checks if dictionary entry sized values are solely composed of multiple copies of a single value.

For example, if we are looking for repeated bytes in a 1-byte granularity (RepT is uint8_t), the value 0x3232 would match, however 0x3332 wouldn't.

Template Parameters
RepTThe type of the repeated value, which must fit in a dictionary entry.

Definition at line 610 of file dictionary_compressor.hh.

Constructor & Destructor Documentation

◆ RepeatedValuePattern()

template<class T >
template<class RepT >
gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT >::RepeatedValuePattern ( const int number,
const uint64_t code,
const uint64_t metadata_length,
const int match_location,
const DictionaryEntry bytes,
const bool allocate = true )
inline

Definition at line 621 of file dictionary_compressor.hh.

Member Function Documentation

◆ decompress()

template<class T >
template<class RepT >
DictionaryEntry gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT >::decompress ( const DictionaryEntry dict_bytes) const
inlineoverridevirtual

Decompress the pattern.

Each pattern has its own way of interpreting its data.

Parameters
dict_bytesThe bytes in the corresponding matching entry.
Returns
The decompressed pattern.

Implements gem5::compression::DictionaryCompressor< T >::Pattern.

Definition at line 653 of file dictionary_compressor.hh.

References gem5::ArmISA::i, and gem5::compression::DictionaryCompressor< T >::toDictionaryEntry().

◆ isPattern()

template<class T >
template<class RepT >
static bool gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT >::isPattern ( const DictionaryEntry & bytes,
const DictionaryEntry & dict_bytes,
const int match_location )
inlinestatic

Member Data Documentation

◆ value

template<class T >
template<class RepT >
RepT gem5::compression::DictionaryCompressor< T >::RepeatedValuePattern< RepT >::value
private

The repeated value.

Definition at line 618 of file dictionary_compressor.hh.


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

Generated on Tue Jun 18 2024 16:24:18 for gem5 by doxygen 1.11.0