CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Attributes | List of all members
circt::synth::ResourceUsageAnalysis Class Reference

Analysis that computes resource usage for Synth dialect operations. More...

#include <ResourceUsageAnalysis.h>

Collaboration diagram for circt::synth::ResourceUsageAnalysis:
Collaboration graph
[legend]

Classes

struct  ModuleResourceUsage
 Resource usage for a single module, including local and total counts. More...
 
struct  ResourceUsage
 Resource usage counts for a set of operations. More...
 

Public Member Functions

 ResourceUsageAnalysis (mlir::Operation *moduleOp, mlir::AnalysisManager &am)
 
ModuleResourceUsagegetResourceUsage (igraph::ModuleOpInterface module)
 Get resource usage for a module.
 
ModuleResourceUsagegetResourceUsage (StringAttr moduleName)
 
igraph::InstanceGraphgetInstanceGraph () const
 Get the instance graph used by this analysis.
 

Private Attributes

DenseMap< StringAttr, std::unique_ptr< ModuleResourceUsage > > designUsageCache
 Cache of computed resource usage per module.
 
igraph::InstanceGraphinstanceGraph
 Instance graph for module hierarchy traversal.
 

Detailed Description

Analysis that computes resource usage for Synth dialect operations.

This analysis walks module hierarchies and counts resources such as:

Definition at line 37 of file ResourceUsageAnalysis.h.

Constructor & Destructor Documentation

◆ ResourceUsageAnalysis()

ResourceUsageAnalysis::ResourceUsageAnalysis ( mlir::Operation *  moduleOp,
mlir::AnalysisManager &  am 
)

Definition at line 93 of file ResourceUsageAnalysis.cpp.

Member Function Documentation

◆ getInstanceGraph()

igraph::InstanceGraph * circt::synth::ResourceUsageAnalysis::getInstanceGraph ( ) const
inline

Get the instance graph used by this analysis.

Definition at line 91 of file ResourceUsageAnalysis.h.

References instanceGraph.

◆ getResourceUsage() [1/2]

ResourceUsageAnalysis::ModuleResourceUsage * ResourceUsageAnalysis::getResourceUsage ( igraph::ModuleOpInterface  module)

Get resource usage for a module.

Definition at line 117 of file ResourceUsageAnalysis.cpp.

References designUsageCache, instanceGraph, and circt::igraph::InstanceGraph::lookup().

Referenced by getResourceUsage().

◆ getResourceUsage() [2/2]

ResourceUsageAnalysis::ModuleResourceUsage * ResourceUsageAnalysis::getResourceUsage ( StringAttr  moduleName)

Member Data Documentation

◆ designUsageCache

DenseMap<StringAttr, std::unique_ptr<ModuleResourceUsage> > circt::synth::ResourceUsageAnalysis::designUsageCache
private

Cache of computed resource usage per module.

Definition at line 95 of file ResourceUsageAnalysis.h.

Referenced by getResourceUsage(), and getResourceUsage().

◆ instanceGraph

igraph::InstanceGraph* circt::synth::ResourceUsageAnalysis::instanceGraph
private

Instance graph for module hierarchy traversal.

Definition at line 98 of file ResourceUsageAnalysis.h.

Referenced by getInstanceGraph(), getResourceUsage(), and getResourceUsage().


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