CIRCT 23.0.0git
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
ResourceUsageAnalysis.cpp File Reference
#include "circt/Dialect/Synth/Analysis/ResourceUsageAnalysis.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/HW/HWOpInterfaces.h"
#include "circt/Dialect/Seq/SeqOps.h"
#include "circt/Dialect/Synth/SynthOps.h"
#include "circt/Dialect/Synth/Transforms/SynthPasses.h"
#include "circt/Support/InstanceGraph.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/Pass/AnalysisManager.h"
#include "mlir/Support/FileUtilities.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/Support/JSON.h"
#include "llvm/Support/ToolOutputFile.h"
#include "circt/Dialect/Synth/Transforms/SynthPasses.h.inc"
Include dependency graph for ResourceUsageAnalysis.cpp:

Go to the source code of this file.

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 
namespace  circt::synth
 

Macros

#define GEN_PASS_DEF_PRINTRESOURCEUSAGEANALYSIS
 

Functions

static std::optional< std::pair< std::string, uint64_t > > getResourceCount (Operation *op)
 Get resource count for an operation if it's a tracked resource type.
 
static llvm::json::Object getModuleResourceUsageJSON (const ResourceUsageAnalysis::ResourceUsage &usage)
 Convert ResourceUsage to JSON object.
 
static llvm::json::Object getModuleResourceUsageJSON (const ResourceUsageAnalysis::ModuleResourceUsage &usage)
 Convert ModuleResourceUsage to JSON object with full hierarchy.
 

Macro Definition Documentation

◆ GEN_PASS_DEF_PRINTRESOURCEUSAGEANALYSIS

#define GEN_PASS_DEF_PRINTRESOURCEUSAGEANALYSIS

Definition at line 32 of file ResourceUsageAnalysis.cpp.

Function Documentation

◆ getModuleResourceUsageJSON() [1/2]

static llvm::json::Object getModuleResourceUsageJSON ( const ResourceUsageAnalysis::ModuleResourceUsage &  usage)
static

Convert ModuleResourceUsage to JSON object with full hierarchy.

This creates fully-elaborated information including all child instances.

Definition at line 193 of file ResourceUsageAnalysis.cpp.

References getModuleResourceUsageJSON().

◆ getModuleResourceUsageJSON() [2/2]

static llvm::json::Object getModuleResourceUsageJSON ( const ResourceUsageAnalysis::ResourceUsage &  usage)
static

Convert ResourceUsage to JSON object.

Definition at line 184 of file ResourceUsageAnalysis.cpp.

Referenced by circt::synth::ResourceUsageAnalysis::ModuleResourceUsage::emitJSON(), and getModuleResourceUsageJSON().

◆ getResourceCount()

static std::optional< std::pair< std::string, uint64_t > > getResourceCount ( Operation *  op)
static

Get resource count for an operation if it's a tracked resource type.

Returns (operation name, count) pair, or std::nullopt if not tracked. The operation name may include additional information (e.g., LUT input count).

Definition at line 49 of file ResourceUsageAnalysis.cpp.