Loading [MathJax]/extensions/tex2jax.js
CIRCT 21.0.0git
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | List of all members
circt::llhd::deseq::ValueTable Struct Reference

A table of SSA values and the conditions under which they appear. More...

#include <DeseqUtils.h>

Collaboration diagram for circt::llhd::deseq::ValueTable:
Collaboration graph
[legend]

Public Member Functions

 ValueTable ()=default
 
 ValueTable (TruthTable condition, ValueEntry entry)
 
void addCondition (TruthTable condition)
 
void merge (const ValueTable &other)
 
void minimize ()
 

Public Attributes

SmallVector< std::pair< TruthTable, ValueEntry >, 1 > entries
 

Detailed Description

A table of SSA values and the conditions under which they appear.

This struct can be used to track the various concrete values an SSA value may assume depending on how control flow reaches it.

Definition at line 160 of file DeseqUtils.h.

Constructor & Destructor Documentation

◆ ValueTable() [1/2]

circt::llhd::deseq::ValueTable::ValueTable ( )
default

◆ ValueTable() [2/2]

circt::llhd::deseq::ValueTable::ValueTable ( TruthTable  condition,
ValueEntry  entry 
)
inline

Definition at line 164 of file DeseqUtils.h.

Member Function Documentation

◆ addCondition()

void ValueTable::addCondition ( TruthTable  condition)

Definition at line 245 of file DeseqUtils.cpp.

References entries, and minimize().

◆ merge()

void ValueTable::merge ( const ValueTable other)

Definition at line 251 of file DeseqUtils.cpp.

References entries, and minimize().

◆ minimize()

void ValueTable::minimize ( )

Definition at line 256 of file DeseqUtils.cpp.

References assert(), and entries.

Referenced by addCondition(), and merge().

Member Data Documentation

◆ entries

SmallVector<std::pair<TruthTable, ValueEntry>, 1> circt::llhd::deseq::ValueTable::entries

Definition at line 161 of file DeseqUtils.h.

Referenced by addCondition(), merge(), minimize(), and circt::llhd::deseq::operator<<().


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