CIRCT 23.0.0git
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
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:
Collaboration graph
[legend]

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

◆ 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.

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.

◆ operator==()

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

Definition at line 52 of file DeseqUtils.h.

References bitID, bitWidth, fieldID, and value.

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(), and operator==().

◆ 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().

◆ 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 Python.support.OpOperand::type().


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