gem5
v20.1.0.0
|
A pattern that checks if dictionary entry sized values are solely composed of multiple copies of a single value. More...
#include <dictionary_compressor.hh>
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. More... | |
Public Member Functions inherited from Compressor::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. More... | |
virtual | ~Pattern ()=default |
Default destructor. More... | |
int | getPatternNumber () const |
Get enum number associated to this pattern. More... | |
uint8_t | getCode () const |
Get code of this pattern. More... | |
uint8_t | getMatchLocation () const |
Get the index of the dictionary match location. More... | |
std::size_t | getSizeBits () const |
Get size, in bits, of the pattern (excluding prefix). More... | |
bool | shouldAllocate () const |
Determine if pattern allocates a dictionary entry. More... | |
std::string | print () const |
Extract pattern's information to a string. More... | |
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. More... | |
Additional Inherited Members | |
Protected Attributes inherited from Compressor::DictionaryCompressor< T >::Pattern | |
const int | patternNumber |
Pattern enum number. More... | |
const uint8_t | code |
Code associated to the pattern. More... | |
const uint8_t | length |
Length, in bits, of the code and match location. More... | |
const uint8_t | numUnmatchedBits |
Number of unmatched bits. More... | |
const int | matchLocation |
Index representing the the match location. More... | |
const bool | allocate |
Wether the pattern allocates a dictionary entry or not. More... | |
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.
RepT | The type of the repeated value, which must fit in a dictionary entry. |
Definition at line 134 of file dictionary_compressor.hh.
|
inline |
Definition at line 616 of file dictionary_compressor.hh.
|
inlineoverridevirtual |
Decompress the pattern.
Each pattern has its own way of interpreting its data.
dict_bytes | The bytes in the corresponding matching entry. |
Implements Compressor::DictionaryCompressor< T >::Pattern.
Definition at line 648 of file dictionary_compressor.hh.
References ArmISA::i, and Compressor::DictionaryCompressor< T >::toDictionaryEntry().
|
inlinestatic |
Definition at line 629 of file dictionary_compressor.hh.
References Compressor::DictionaryCompressor< T >::fromDictionaryEntry(), and ArmISA::i.
|
private |
The repeated value.
Definition at line 610 of file dictionary_compressor.hh.