CIRCT  18.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 visitSubindex (SubindexOp si)
 
void visitSubaccess (SubaccessOp sa)
 
void visitMem (MemOp mem)
 
void visitInst (InstanceOp 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

Definition at line 100 of file FIRRTLFieldSource.cpp.

References paths.

Referenced by visitSubaccess(), visitSubfield(), and visitSubindex().

◆ visitInst()

void FieldSource::visitInst ( InstanceOp  inst)
private

Definition at line 95 of file FIRRTLFieldSource.cpp.

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

Referenced by visitOp().

◆ visitMem()

void FieldSource::visitMem ( MemOp  mem)
private

Definition at line 90 of file FIRRTLFieldSource.cpp.

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

Referenced by visitOp().

◆ visitOp()

void FieldSource::visitOp ( Operation *  op)
private

◆ visitSubaccess()

void FieldSource::visitSubaccess ( SubaccessOp  sa)
private

Definition at line 81 of file FIRRTLFieldSource.cpp.

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

Referenced by visitOp().

◆ visitSubfield()

void FieldSource::visitSubfield ( SubfieldOp  sf)
private

Definition at line 63 of file FIRRTLFieldSource.cpp.

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

Referenced by visitOp().

◆ visitSubindex()

void FieldSource::visitSubindex ( SubindexOp  si)
private

Definition at line 72 of file FIRRTLFieldSource.cpp.

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

Referenced by visitOp().

Member Data Documentation

◆ paths

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

Definition at line 73 of file FIRRTLFieldSource.h.

Referenced by makeNodeForValue(), and nodeForValue().


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