CIRCT 23.0.0git
Loading...
Searching...
No Matches
Public Attributes | List of all members
circt::synth::CutRewriterOptions Struct Reference

Configuration options for the cut-based rewriting algorithm. More...

#include <CutRewriter.h>

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

Public Attributes

OptimizationStrategy strategy
 Optimization strategy (area vs. timing).
 
unsigned maxCutInputSize
 Maximum number of inputs allowed for any cut.
 
unsigned maxCutSizePerRoot
 Maximum number of cuts to maintain per logic node.
 
bool allowNoMatch = false
 Fail if there is a root operation that has no matching pattern.
 
bool attachDebugTiming = false
 Put arrival times to rewritten operations.
 
bool testPriorityCuts = false
 Run priority cuts enumeration and dump the cut sets.
 
const NPNTablenpnTable = nullptr
 Optional lookup table used to accelerate 4-input NPN canonicalization.
 

Detailed Description

Configuration options for the cut-based rewriting algorithm.

These options control various aspects of the rewriting process including optimization strategy, resource limits, and algorithmic parameters.

Definition at line 560 of file CutRewriter.h.

Member Data Documentation

◆ allowNoMatch

bool circt::synth::CutRewriterOptions::allowNoMatch = false

Fail if there is a root operation that has no matching pattern.

Definition at line 575 of file CutRewriter.h.

Referenced by circt::synth::CutRewriter::runBottomUpRewrite(), GenericLUTMapperPass::runOnOperation(), and SOPBalancingPass::runOnOperation().

◆ attachDebugTiming

bool circt::synth::CutRewriterOptions::attachDebugTiming = false

Put arrival times to rewritten operations.

Definition at line 578 of file CutRewriter.h.

Referenced by circt::synth::CutRewriter::runBottomUpRewrite(), and GenericLUTMapperPass::runOnOperation().

◆ maxCutInputSize

unsigned circt::synth::CutRewriterOptions::maxCutInputSize

Maximum number of inputs allowed for any cut.

Larger cuts provide more optimization opportunities but increase computational complexity exponentially.

Definition at line 567 of file CutRewriter.h.

Referenced by circt::synth::CutSet::finalize(), circt::synth::CutRewriter::run(), GenericLUTMapperPass::runOnOperation(), SOPBalancingPass::runOnOperation(), and circt::synth::CutEnumerator::visitLogicOp().

◆ maxCutSizePerRoot

unsigned circt::synth::CutRewriterOptions::maxCutSizePerRoot

Maximum number of cuts to maintain per logic node.

The priority cuts algorithm keeps only the most promising cuts to prevent exponential explosion.

Definition at line 572 of file CutRewriter.h.

Referenced by circt::synth::CutSet::finalize(), circt::synth::CutRewriter::run(), GenericLUTMapperPass::runOnOperation(), and SOPBalancingPass::runOnOperation().

◆ npnTable

const NPNTable* circt::synth::CutRewriterOptions::npnTable = nullptr

Optional lookup table used to accelerate 4-input NPN canonicalization.

Definition at line 584 of file CutRewriter.h.

Referenced by circt::synth::CutRewriter::getMatchingPatternsFromTruthTable(), TechLibraryPattern::match(), circt::synth::CutRewriter::patternMatchCut(), and TechLibraryPattern::rewrite().

◆ strategy

OptimizationStrategy circt::synth::CutRewriterOptions::strategy

◆ testPriorityCuts

bool circt::synth::CutRewriterOptions::testPriorityCuts = false

Run priority cuts enumeration and dump the cut sets.

Definition at line 581 of file CutRewriter.h.

Referenced by circt::synth::CutRewriter::run().


The documentation for this struct was generated from the following file: