CIRCT  20.0.0git
Public Member Functions | Private Member Functions | Private Attributes | List of all members
circt::calyx::InlineCombGroups Class Reference

This pass recursively inlines use-def chains of combinational logic (from non-stateful groups) into groups referenced in the control schedule. More...

#include <CalyxLoweringUtils.h>

Inheritance diagram for circt::calyx::InlineCombGroups:
Inheritance graph
[legend]
Collaboration diagram for circt::calyx::InlineCombGroups:
Collaboration graph
[legend]

Public Member Functions

 InlineCombGroups (MLIRContext *context, LogicalResult &resRef, PatternApplicationState &patternState, calyx::CalyxLoweringState &pls)
 
LogicalResult partiallyLower (calyx::GroupInterface originGroup, PatternRewriter &rewriter) const override
 
- Public Member Functions inherited from circt::calyx::PartialLoweringPattern< calyx::GroupInterface, mlir::OpInterfaceRewritePattern >
 PartialLoweringPattern (MLIRContext *ctx, LogicalResult &resRef, PatternApplicationState &patternState)
 
LogicalResult matchAndRewrite (calyx::GroupInterface op, PatternRewriter &rewriter) const override
 

Private Member Functions

void recurseInlineCombGroups (PatternRewriter &rewriter, ComponentLoweringStateInterface &state, llvm::SmallSetVector< Operation *, 8 > &inlinedGroups, calyx::GroupInterface originGroup, calyx::GroupInterface recGroup, bool doInline) const
 

Private Attributes

calyx::CalyxLoweringStatecls
 

Detailed Description

This pass recursively inlines use-def chains of combinational logic (from non-stateful groups) into groups referenced in the control schedule.

Definition at line 712 of file CalyxLoweringUtils.h.

Constructor & Destructor Documentation

◆ InlineCombGroups()

circt::calyx::InlineCombGroups::InlineCombGroups ( MLIRContext *  context,
LogicalResult &  resRef,
PatternApplicationState patternState,
calyx::CalyxLoweringState pls 
)

Definition at line 616 of file CalyxLoweringUtils.cpp.

Member Function Documentation

◆ partiallyLower()

LogicalResult circt::calyx::InlineCombGroups::partiallyLower ( calyx::GroupInterface  originGroup,
PatternRewriter &  rewriter 
) const
overridevirtual

◆ recurseInlineCombGroups()

void circt::calyx::InlineCombGroups::recurseInlineCombGroups ( PatternRewriter &  rewriter,
ComponentLoweringStateInterface state,
llvm::SmallSetVector< Operation *, 8 > &  inlinedGroups,
calyx::GroupInterface  originGroup,
calyx::GroupInterface  recGroup,
bool  doInline 
) const
private

Inline the assignment into the originGroup.

Definition at line 646 of file CalyxLoweringUtils.cpp.

References circt::calyx::ComponentLoweringStateInterface::getEvaluatingGroup().

Referenced by partiallyLower().

Member Data Documentation

◆ cls

calyx::CalyxLoweringState& circt::calyx::InlineCombGroups::cls
private

Definition at line 731 of file CalyxLoweringUtils.h.

Referenced by partiallyLower().


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