CIRCT
18.0.0git
|
#include "circt/Conversion/SCFToCalyx.h"
#include "../PassDetail.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 "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/Dialect/SCF/IR/SCF.h"
#include "mlir/IR/AsmState.h"
#include "mlir/IR/Matchers.h"
#include "mlir/Support/LogicalResult.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "llvm/ADT/TypeSwitch.h"
#include <variant>
Go to the source code of this file.
Classes | |
class | circt::scftocalyx::ScfWhileOp |
class | circt::scftocalyx::ScfForOp |
struct | circt::scftocalyx::WhileScheduleable |
struct | circt::scftocalyx::ForScheduleable |
struct | circt::scftocalyx::CallScheduleable |
class | circt::scftocalyx::WhileLoopLoweringStateInterface |
class | circt::scftocalyx::ForLoopLoweringStateInterface |
class | circt::scftocalyx::ComponentLoweringState |
Handles the current state of lowering of a Calyx component. More... | |
class | circt::scftocalyx::BuildOpGroups |
Iterate through the operations of a source function and instantiate components or primitives based on the type of the operations. More... | |
class | circt::scftocalyx::InlineExecuteRegionOpPattern |
Inlines Calyx ExecuteRegionOp operations within their parent blocks. More... | |
struct | circt::scftocalyx::FuncOpConversion |
Creates a new Calyx component for each FuncOp in the program. More... | |
class | circt::scftocalyx::BuildWhileGroups |
In BuildWhileGroups, a register is created for each iteration argumenet of the while op. More... | |
class | circt::scftocalyx::BuildForGroups |
In BuildForGroups, a register is created for the iteration argument of the for op. More... | |
class | circt::scftocalyx::BuildControl |
Builds a control schedule by traversing the CFG of the function and associating this with the previously created groups. More... | |
class | circt::scftocalyx::LateSSAReplacement |
LateSSAReplacement contains various functions for replacing SSA values that were not replaced during op construction. More... | |
class | circt::scftocalyx::CleanupFuncOps |
Erases FuncOp operations. More... | |
class | circt::scftocalyx::SCFToCalyxPass |
struct | circt::scftocalyx::SCFToCalyxPass::LoweringPattern |
Namespaces | |
circt | |
This file defines an intermediate representation for circuits acting as an abstraction for constraints defined over an SMT's solver context. | |
circt::scftocalyx | |
Typedefs | |
using | circt::scftocalyx::Scheduleable = std::variant< calyx::GroupOp, WhileScheduleable, ForScheduleable, CallScheduleable > |
A variant of types representing scheduleable operations. More... | |
Functions | |
template<typename TAllocOp > | |
static LogicalResult | circt::scftocalyx::buildAllocOp (ComponentLoweringState &componentState, PatternRewriter &rewriter, TAllocOp allocOp) |
std::unique_ptr< OperationPass< ModuleOp > > | circt::createSCFToCalyxPass () |
Create an SCF to Calyx conversion pass. More... | |