|
CIRCT 22.0.0git
|
#include "circt/Conversion/SCFToCalyx.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/Math/IR/Math.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/Pass/Pass.h"#include "mlir/Support/LogicalResult.h"#include "mlir/Transforms/GreedyPatternRewriteDriver.h"#include "llvm/ADT/TypeSwitch.h"#include "llvm/Support/LogicalResult.h"#include "llvm/Support/raw_os_ostream.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>#include <filesystem>#include <fstream>#include <locale>#include <numeric>#include <variant>#include "circt/Conversion/Passes.h.inc"
Go to the source code of this file.
Classes | |
| class | circt::scftocalyx::ScfWhileOp |
| class | circt::scftocalyx::ScfForOp |
| struct | circt::scftocalyx::IfScheduleable |
| struct | circt::scftocalyx::WhileScheduleable |
| struct | circt::scftocalyx::ForScheduleable |
| struct | circt::scftocalyx::CallScheduleable |
| struct | circt::scftocalyx::ParScheduleable |
| class | circt::scftocalyx::IfLoweringStateInterface |
| class | circt::scftocalyx::WhileLoopLoweringStateInterface |
| class | circt::scftocalyx::ForLoopLoweringStateInterface |
| class | circt::scftocalyx::SeqOpLoweringStateInterface |
| Stores the state information for condition checks involving sequential computation. More... | |
| 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::BuildIfGroups |
| 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... | |
Namespaces | |
| namespace | circt |
| The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
| namespace | circt::scftocalyx |
Macros | |
| #define | GEN_PASS_DEF_SCFTOCALYX |
Typedefs | |
| using | circt::scftocalyx::Scheduleable = std::variant< calyx::GroupOp, WhileScheduleable, ForScheduleable, IfScheduleable, CallScheduleable, ParScheduleable > |
| A variant of types representing scheduleable operations. | |
Functions | |
| template<typename TAllocOp > | |
| static LogicalResult | circt::scftocalyx::buildAllocOp (ComponentLoweringState &componentState, PatternRewriter &rewriter, TAllocOp allocOp) |
| std::unique_ptr< OperationPass< ModuleOp > > | circt::createSCFToCalyxPass (std::string topLevelFunction="") |
| Create an SCF to Calyx conversion pass. | |
Variables | |
| static constexpr std::string_view | circt::scftocalyx::unrolledParallelAttr = "calyx.unroll" |
| #define GEN_PASS_DEF_SCFTOCALYX |
Definition at line 45 of file SCFToCalyx.cpp.
|
private |
Definition at line 2777 of file SCFToCalyx.cpp.
Referenced by tryEliminatingConnectsToValue().
|
private |
Definition at line 2776 of file SCFToCalyx.cpp.
| RewritePatternSet pattern |
Definition at line 2686 of file SCFToCalyx.cpp.
Referenced by circt::ConversionPatternSet::add(), circt::ConversionPatternSet::add(), circt::ExportSystemC::EmissionPatternSet< PatternTy >::addImpl(), circt::sv::CaseBitPattern::CaseBitPattern(), computeTruthTable(), circt::ExportSystemC::PatternBase::create(), circt::synth::CutRewritePatternSet::CutRewritePatternSet(), circt::synth::CutEnumerator::dump(), parseCaseRegions(), circt::synth::CutRewriter::patternMatchCut(), circt::synth::CutRewriter::run(), circt::pipelinetocalyx::LoopScheduleToCalyxPass::runPartialPattern(), and circt::synth::Cut::setMatchedPattern().
| Strategy strategy |
Definition at line 2687 of file SCFToCalyx.cpp.
Referenced by bufferRegion(), compareDelayAndArea(), circt::handshake::createHandshakeInsertBuffersPass(), circt::maximizeSSA(), circt::maximizeSSA(), circt::maximizeSSA(), maximizeSSANoMem(), and GenericLUTMapperPass::runOnOperation().