|
| DiscoverLoops (FModuleOp module, InstanceGraph &instanceGraph, const DenseMap< FModuleLike, DrivenBysMapType > &otherModulePortPaths, DrivenBysMapType &thisModulePortPaths) |
|
LogicalResult | processModule () |
|
void | constructConnectivityGraph (FModuleOp module) |
|
unsigned | getOrAddNode (Value v) |
|
unsigned | getOrAddNode (FieldRef f) |
|
void | addDrivenBy (FieldRef dst, FieldRef src) |
|
void | recordDataflow (Value dstVal, Value srcVal) |
|
void | handleRefForce (Value dstProbe, Value srcVal) |
|
void | handleInstanceOp (InstanceOp inst) |
|
void | recordValueRefersToFieldRef (Value base, unsigned fieldID, Value result) |
|
LogicalResult | dfsTraverse (const DrivenByGraphType &graph) |
|
void | reportLoopFound (SmallVectorImpl< FieldRef > &path, Location loc) |
|
void | dumpMap () |
|
void | recordProbe (Value data, Value ref) |
|
void | probesReferToSameData (Value probe1, Value probe2) |
|
void | addToPortPathsIfRWProbe (unsigned srcNode, DenseSet< FieldRef > &inputPortPaths) |
|
Definition at line 58 of file CheckCombLoops.cpp.
◆ DrivenByGraphType
Adjacency list representation.
Each entry is a pair, the first element is the FieldRef corresponding to the graph vertex. The second element is the list of vertices, that have an edge to this vertex. The directed edges represent a connectivity relation, of a source that drives the sink.
Definition at line 66 of file CheckCombLoops.cpp.
◆ DiscoverLoops()
◆ addDrivenBy()
◆ addToPortPathsIfRWProbe()
void DiscoverLoops::addToPortPathsIfRWProbe |
( |
unsigned |
srcNode, |
|
|
DenseSet< FieldRef > & |
inputPortPaths |
|
) |
| |
|
inline |
◆ constructConnectivityGraph()
void DiscoverLoops::constructConnectivityGraph |
( |
FModuleOp |
module | ) |
|
|
inline |
◆ dfsTraverse()
◆ dumpMap()
void DiscoverLoops::dumpMap |
( |
| ) |
|
|
inline |
◆ getName()
static std::string DiscoverLoops::getName |
( |
FieldRef |
v | ) |
|
|
inlinestatic |
◆ getOrAddNode() [1/2]
unsigned DiscoverLoops::getOrAddNode |
( |
FieldRef |
f | ) |
|
|
inline |
◆ getOrAddNode() [2/2]
unsigned DiscoverLoops::getOrAddNode |
( |
Value |
v | ) |
|
|
inline |
◆ handleInstanceOp()
void DiscoverLoops::handleInstanceOp |
( |
InstanceOp |
inst | ) |
|
|
inline |
◆ handleRefForce()
void DiscoverLoops::handleRefForce |
( |
Value |
dstProbe, |
|
|
Value |
srcVal |
|
) |
| |
|
inline |
◆ probesReferToSameData()
void DiscoverLoops::probesReferToSameData |
( |
Value |
probe1, |
|
|
Value |
probe2 |
|
) |
| |
|
inline |
◆ processModule()
LogicalResult DiscoverLoops::processModule |
( |
| ) |
|
|
inline |
◆ recordDataflow()
void DiscoverLoops::recordDataflow |
( |
Value |
dstVal, |
|
|
Value |
srcVal |
|
) |
| |
|
inline |
◆ recordProbe()
void DiscoverLoops::recordProbe |
( |
Value |
data, |
|
|
Value |
ref |
|
) |
| |
|
inline |
◆ recordValueRefersToFieldRef()
void DiscoverLoops::recordValueRefersToFieldRef |
( |
Value |
base, |
|
|
unsigned |
fieldID, |
|
|
Value |
result |
|
) |
| |
|
inline |
◆ reportLoopFound()
void DiscoverLoops::reportLoopFound |
( |
SmallVectorImpl< FieldRef > & |
path, |
|
|
Location |
loc |
|
) |
| |
|
inline |
◆ drivenBy
This is an adjacency list representation of the connectivity graph.
This can be indexed by the graph node id, and each entry is the list of graph nodes that has an edge to it. Each graph node represents a FieldRef and each edge represents a source that directly drives the sink node.
Definition at line 689 of file CheckCombLoops.cpp.
◆ instanceGraph
◆ module
FModuleOp DiscoverLoops::module |
|
private |
◆ modulePortPaths
Comb paths that exist between module ports.
This is maintained across modules.
Definition at line 679 of file CheckCombLoops.cpp.
◆ nodes
DenseMap<FieldRef, size_t> DiscoverLoops::nodes |
|
private |
◆ portPaths
The comb paths between the ports of this module.
This is the final output of this intra-procedural analysis, that is used to construct the inter-procedural dataflow.
Definition at line 683 of file CheckCombLoops.cpp.
◆ rwProbeClasses
llvm::EquivalenceClasses<unsigned> DiscoverLoops::rwProbeClasses |
|
private |
An eqv class of all the RWProbes that refer to the same base value.
Definition at line 698 of file CheckCombLoops.cpp.
◆ rwProbeRefersTo
DenseMap<unsigned, unsigned> DiscoverLoops::rwProbeRefersTo |
|
private |
The base value that the RWProbe refers to.
Used to add an edge to the base value, when the probe is forced.
Definition at line 695 of file CheckCombLoops.cpp.
◆ valToFieldRefs
DenseMap<Value, SmallVector<FieldRef> > DiscoverLoops::valToFieldRefs |
|
private |
Map of values to the set of all FieldRefs (same base) that this may be directly derived from through indexing operations.
Definition at line 676 of file CheckCombLoops.cpp.
The documentation for this class was generated from the following file:
- /home/runner/work/circt-www/circt-www/circt_src/lib/Dialect/FIRRTL/Transforms/CheckCombLoops.cpp