CIRCT  20.0.0git
Namespaces | Macros | Functions
RemoveGroups.cpp File Reference
#include "circt/Dialect/Calyx/CalyxHelpers.h"
#include "circt/Dialect/Calyx/CalyxOps.h"
#include "circt/Dialect/Calyx/CalyxPasses.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/OperationSupport.h"
#include "circt/Dialect/Calyx/CalyxPasses.h.inc"
Include dependency graph for RemoveGroups.cpp:

Go to the source code of this file.

Namespaces

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

Macros

#define GEN_PASS_DEF_REMOVEGROUPS
 

Functions

static void modifyGroupOperations (ComponentOp component)
 Makes several modifications to the operations of a GroupOp: More...
 
void inlineGroups (ComponentOp component)
 Inlines each group in the WiresOp. More...
 

Macro Definition Documentation

◆ GEN_PASS_DEF_REMOVEGROUPS

#define GEN_PASS_DEF_REMOVEGROUPS

Definition at line 22 of file RemoveGroups.cpp.

Function Documentation

◆ inlineGroups()

void inlineGroups ( ComponentOp  component)

Inlines each group in the WiresOp.

Definition at line 77 of file RemoveGroups.cpp.

◆ modifyGroupOperations()

static void modifyGroupOperations ( ComponentOp  component)
static

Makes several modifications to the operations of a GroupOp:

  1. Assign the 'done' signal of the component with the done_op of the top level control group.
  2. Append the 'go' signal of the component to guard of each assignment.
  3. Replace all uses of GroupGoOp with the respective guard, and delete the GroupGoOp.
  4. Remove the GroupDoneOp.

Definition at line 38 of file RemoveGroups.cpp.

References circt::calyx::updateGroupAssignmentGuards().