CIRCT  20.0.0git
Classes | Namespaces | Macros | Typedefs | Functions
LoopScheduleToCalyx.cpp File Reference
#include "circt/Conversion/LoopScheduleToCalyx.h"
#include "circt/Dialect/Calyx/CalyxHelpers.h"
#include "circt/Dialect/Calyx/CalyxLoweringUtils.h"
#include "circt/Dialect/Calyx/CalyxOps.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/LoopSchedule/LoopScheduleOps.h"
#include "mlir/Conversion/LLVMCommon/ConversionTarget.h"
#include "mlir/Conversion/LLVMCommon/Pattern.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/IR/AsmState.h"
#include "mlir/IR/Matchers.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/ADT/TypeSwitch.h"
#include <variant>
#include "circt/Conversion/Passes.h.inc"
Include dependency graph for LoopScheduleToCalyx.cpp:

Go to the source code of this file.

Classes

class  circt::pipelinetocalyx::PipelineWhileOp
 
struct  circt::pipelinetocalyx::PipelineScheduleable
 
class  circt::pipelinetocalyx::PipelineScheduler
 Holds additional information required for scheduling Pipeline pipelines. More...
 
class  circt::pipelinetocalyx::ComponentLoweringState
 Handles the current state of lowering of a Calyx component. More...
 
class  circt::pipelinetocalyx::BuildOpGroups
 Iterate through the operations of a source function and instantiate components or primitives based on the type of the operations. More...
 
struct  circt::pipelinetocalyx::FuncOpConversion
 Creates a new Calyx component for each FuncOp in the program. More...
 
class  circt::pipelinetocalyx::BuildWhileGroups
 In BuildWhileGroups, a register is created for each iteration argumenet of the while op. More...
 
class  circt::pipelinetocalyx::BuildPipelineRegs
 Builds registers for each pipeline stage in the program. More...
 
class  circt::pipelinetocalyx::BuildPipelineGroups
 Builds groups for assigning registers for pipeline stages. More...
 
class  circt::pipelinetocalyx::BuildControl
 Builds a control schedule by traversing the CFG of the function and associating this with the previously created groups. More...
 
class  circt::pipelinetocalyx::LateSSAReplacement
 LateSSAReplacement contains various functions for replacing SSA values that were not replaced during op construction. More...
 
class  circt::pipelinetocalyx::CleanupFuncOps
 Erases FuncOp operations. More...
 
class  circt::pipelinetocalyx::LoopScheduleToCalyxPass
 
struct  circt::pipelinetocalyx::LoopScheduleToCalyxPass::LoweringPattern
 

Namespaces

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

Macros

#define GEN_PASS_DEF_LOOPSCHEDULETOCALYX
 

Typedefs

using circt::pipelinetocalyx::Scheduleable = std::variant< calyx::GroupOp, PipelineScheduleable >
 A variant of types representing scheduleable operations. More...
 

Functions

template<typename TAllocOp >
static LogicalResult circt::pipelinetocalyx::buildAllocOp (ComponentLoweringState &componentState, PatternRewriter &rewriter, TAllocOp allocOp)
 
std::unique_ptr< OperationPass< ModuleOp > > circt::createLoopScheduleToCalyxPass ()
 Create a LoopSchedule to Calyx conversion pass. More...
 

Macro Definition Documentation

◆ GEN_PASS_DEF_LOOPSCHEDULETOCALYX

#define GEN_PASS_DEF_LOOPSCHEDULETOCALYX

Definition at line 35 of file LoopScheduleToCalyx.cpp.