CIRCT  20.0.0git
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
circt::firrtl::FieldSource Class Reference

To use this class, retrieve a cached copy from the analysis manager: auto &fieldsource = getAnalysis<FieldSource>(getOperation());. More...

#include <FIRRTLFieldSource.h>

Collaboration diagram for circt::firrtl::FieldSource:
Collaboration graph
[legend]

Classes

struct  PathNode
 

Public Member Functions

 FieldSource (Operation *operation)
 
const PathNodenodeForValue (Value v) const
 

Private Member Functions

void visitOp (Operation *op)
 
void visitSubfield (SubfieldOp sf)
 
void visitOpenSubfield (OpenSubfieldOp sf)
 
void visitSubindex (SubindexOp si)
 
void visitOpenSubindex (OpenSubindexOp si)
 
void visitSubaccess (SubaccessOp sa)
 
void visitMem (MemOp mem)
 
void visitInst (InstanceOp inst)
 
void visitInstChoice (InstanceChoiceOp inst)
 
void makeNodeForValue (Value dst, Value src, ArrayRef< int64_t > path, Flow flow)
 

Private Attributes

DenseMap< Value, PathNodepaths
 

Detailed Description

To use this class, retrieve a cached copy from the analysis manager: auto &fieldsource = getAnalysis<FieldSource>(getOperation());.

Definition at line 27 of file FIRRTLFieldSource.h.

Constructor & Destructor Documentation

◆ FieldSource()

FieldSource::FieldSource ( Operation *  operation)
explicit

Definition at line 29 of file FIRRTLFieldSource.cpp.

References circt::firrtl::foldFlow(), makeNodeForValue(), and visitOp().

Member Function Documentation

◆ makeNodeForValue()

void FieldSource::makeNodeForValue ( Value  dst,
Value  src,
ArrayRef< int64_t >  path,
Flow  flow 
)
private

◆ nodeForValue()

const FieldSource::PathNode * FieldSource::nodeForValue ( Value  v) const

◆ visitInst()

void FieldSource::visitInst ( InstanceOp  inst)
private

Definition at line 122 of file FIRRTLFieldSource.cpp.

References circt::firrtl::foldFlow(), and makeNodeForValue().

Referenced by visitOp().

◆ visitInstChoice()

void FieldSource::visitInstChoice ( InstanceChoiceOp  inst)
private

Definition at line 127 of file FIRRTLFieldSource.cpp.

References circt::firrtl::foldFlow(), and makeNodeForValue().

Referenced by visitOp().

◆ visitMem()

void FieldSource::visitMem ( MemOp  mem)
private

Definition at line 117 of file FIRRTLFieldSource.cpp.

References circt::firrtl::foldFlow(), and makeNodeForValue().

Referenced by visitOp().

◆ visitOp()

void FieldSource::visitOp ( Operation *  op)
private

◆ visitOpenSubfield()

void FieldSource::visitOpenSubfield ( OpenSubfieldOp  sf)
private

Definition at line 81 of file FIRRTLFieldSource.cpp.

References assert(), circt::firrtl::foldFlow(), makeNodeForValue(), and nodeForValue().

Referenced by visitOp().

◆ visitOpenSubindex()

void FieldSource::visitOpenSubindex ( OpenSubindexOp  si)
private

Definition at line 99 of file FIRRTLFieldSource.cpp.

References assert(), circt::firrtl::foldFlow(), makeNodeForValue(), and nodeForValue().

Referenced by visitOp().

◆ visitSubaccess()

void FieldSource::visitSubaccess ( SubaccessOp  sa)
private

Definition at line 108 of file FIRRTLFieldSource.cpp.

References assert(), circt::firrtl::foldFlow(), makeNodeForValue(), and nodeForValue().

Referenced by visitOp().

◆ visitSubfield()

void FieldSource::visitSubfield ( SubfieldOp  sf)
private

Definition at line 72 of file FIRRTLFieldSource.cpp.

References assert(), circt::firrtl::foldFlow(), makeNodeForValue(), and nodeForValue().

Referenced by visitOp().

◆ visitSubindex()

void FieldSource::visitSubindex ( SubindexOp  si)
private

Definition at line 90 of file FIRRTLFieldSource.cpp.

References assert(), circt::firrtl::foldFlow(), makeNodeForValue(), and nodeForValue().

Referenced by visitOp().

Member Data Documentation

◆ paths

DenseMap<Value, PathNode> circt::firrtl::FieldSource::paths
private

Definition at line 76 of file FIRRTLFieldSource.h.

Referenced by makeNodeForValue(), and nodeForValue().


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