CIRCT  19.0.0git
Functions
RemoveGroups.cpp File Reference
#include "PassDetails.h"
#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 dependency graph for RemoveGroups.cpp:

Go to the source code of this file.

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...
 

Function Documentation

◆ inlineGroups()

void inlineGroups ( ComponentOp  component)

Inlines each group in the WiresOp.

Definition at line 71 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 32 of file RemoveGroups.cpp.

References builder, and circt::calyx::updateGroupAssignmentGuards().