CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::synth::ResourceUsageAnalysis Class Reference

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

#include <ResourceUsageAnalysis.h>

Collaboration diagram for circt::synth::ResourceUsageAnalysis:

Classes

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

Public Member Functions

 ResourceUsageAnalysis (mlir::Operation *moduleOp, mlir::AnalysisManager &am)
ModuleResourceUsage * getResourceUsage (igraph::ModuleOpInterface module)
 Get resource usage for a module.
ModuleResourceUsage * getResourceUsage (StringAttr moduleName)
igraph::InstanceGraph * getInstanceGraph () 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::InstanceGraph * instanceGraph
 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:

  • And-inverter graph (AIG)
  • Truth tables (LUTs)
  • Sequential elements (DFFs)

Definition at line 36 of file ResourceUsageAnalysis.h.

Constructor & Destructor Documentation

◆ ResourceUsageAnalysis()

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

Definition at line 97 of file ResourceUsageAnalysis.cpp.

References instanceGraph, and ResourceUsageAnalysis().

Referenced by ResourceUsageAnalysis().

Member Function Documentation

◆ getInstanceGraph()

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

Get the instance graph used by this analysis.

Definition at line 90 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, and instanceGraph.

Referenced by getResourceUsage().

◆ getResourceUsage() [2/2]

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

Definition at line 102 of file ResourceUsageAnalysis.cpp.

References designUsageCache, getResourceUsage(), and instanceGraph.

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 94 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 97 of file ResourceUsageAnalysis.h.

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


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