CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::llhd::deseq::ValueField Struct Reference

Identify a specific subfield (or the whole) of an SSA value using the HW field ID scheme. More...

#include <DeseqUtils.h>

Collaboration diagram for circt::llhd::deseq::ValueField:

Public Member Functions

 ValueField ()=default
 ValueField (Value value, uint64_t fieldID, Value projection={}, uint64_t bitID=0, uint64_t bitWidth=0)
Value getProjected () const
bool operator== (const ValueField &other) const
bool operator!= (const ValueField &other) const
 operator bool () const

Public Attributes

Value value
 The root SSA value being accessed (e.g. the full struct or array).
uint64_t fieldID = 0
 The HW field ID describing which subfield is referenced.
uint64_t bitID = 0
 Optional bit/slice projection within the selected field.
uint64_t bitWidth = 0
 Width (in bits) of the final extracted slice.
Value projection
 An optional SSA value that already materializes this specific subfield.

Detailed Description

Identify a specific subfield (or the whole) of an SSA value using the HW field ID scheme.

fieldID == 0 means the whole value.

Definition at line 27 of file DeseqUtils.h.

Constructor & Destructor Documentation

◆ ValueField() [1/2]

circt::llhd::deseq::ValueField::ValueField ( )
default

Referenced by operator!=(), and operator==().

◆ ValueField() [2/2]

circt::llhd::deseq::ValueField::ValueField ( Value value,
uint64_t fieldID,
Value projection = {},
uint64_t bitID = 0,
uint64_t bitWidth = 0 )
inline

Definition at line 45 of file DeseqUtils.h.

References fieldID, projection, and value.

Member Function Documentation

◆ getProjected()

Value circt::llhd::deseq::ValueField::getProjected ( ) const
inline

Definition at line 50 of file DeseqUtils.h.

References projection, and value.

◆ operator bool()

circt::llhd::deseq::ValueField::operator bool ( ) const
inline

Definition at line 57 of file DeseqUtils.h.

References value.

◆ operator!=()

bool circt::llhd::deseq::ValueField::operator!= ( const ValueField & other) const
inline

Definition at line 56 of file DeseqUtils.h.

References ValueField().

◆ operator==()

bool circt::llhd::deseq::ValueField::operator== ( const ValueField & other) const
inline

Definition at line 52 of file DeseqUtils.h.

References bitID, bitWidth, fieldID, value, and ValueField().

Member Data Documentation

◆ bitID

uint64_t circt::llhd::deseq::ValueField::bitID = 0

Optional bit/slice projection within the selected field.

0 means the whole field, otherwise this is lowBit + 1 of a comb.extract applied to the field (and can be chained by addition).

Definition at line 36 of file DeseqUtils.h.

Referenced by llvm::DenseMapInfo< circt::llhd::deseq::ValueField >::getHashValue(), and operator==().

◆ bitWidth

uint64_t circt::llhd::deseq::ValueField::bitWidth = 0

Width (in bits) of the final extracted slice.

0 means no explicit slice width is tracked.

Definition at line 39 of file DeseqUtils.h.

Referenced by llvm::DenseMapInfo< circt::llhd::deseq::ValueField >::getHashValue(), and operator==().

◆ fieldID

uint64_t circt::llhd::deseq::ValueField::fieldID = 0

The HW field ID describing which subfield is referenced.

0 means the whole value.

Definition at line 32 of file DeseqUtils.h.

Referenced by llvm::DenseMapInfo< circt::llhd::deseq::ValueField >::getHashValue(), operator==(), and ValueField().

◆ projection

Value circt::llhd::deseq::ValueField::projection

An optional SSA value that already materializes this specific subfield.

For non-projection values, this is identical to value.

Definition at line 42 of file DeseqUtils.h.

Referenced by getProjected(), and ValueField().

◆ value

Value circt::llhd::deseq::ValueField::value

The root SSA value being accessed (e.g. the full struct or array).

Definition at line 29 of file DeseqUtils.h.

Referenced by llvm::DenseMapInfo< circt::llhd::deseq::ValueField >::getHashValue(), getProjected(), synth.Object::is_output_port(), operator bool(), operator==(), and ValueField().


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