|
CIRCT 22.0.0git
|
#include "circt/Dialect/Calyx/CalyxHelpers.h"#include "circt/Dialect/Calyx/CalyxOps.h"#include "circt/Dialect/Comb/CombOps.h"#include "circt/Support/LLVM.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/PatternMatch.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/TypeSwitch.h"#include "llvm/Support/JSON.h"#include <optional>#include <variant>

Go to the source code of this file.
Classes | |
| struct | circt::calyx::MemoryPortsImpl |
| struct | circt::calyx::MemoryInterface |
| class | circt::calyx::BasicLoopInterface |
| class | circt::calyx::LoopInterface |
| class | circt::calyx::WhileOpInterface< T > |
| class | circt::calyx::RepeatOpInterface< T > |
| class | circt::calyx::SchedulerInterface< T > |
| Holds common utilities used for scheduling when lowering to Calyx. More... | |
| class | circt::calyx::LoopLoweringStateInterface< Loop > |
| class | circt::calyx::ComponentLoweringStateInterface |
| struct | circt::calyx::ComponentLoweringStateInterface::IsFloatingPoint< T, typename > |
| struct | circt::calyx::ComponentLoweringStateInterface::IsFloatingPoint< T, std::void_t< decltype(std::declval< T >().getFloatingPointStandard())> > |
| class | circt::calyx::CalyxLoweringState |
| An interface for conversion passes that lower Calyx programs. More... | |
| class | circt::calyx::PartialLoweringPattern< OpType, RewritePatternType > |
| Base class for partial lowering passes. More... | |
| class | circt::calyx::FuncOpPartialLoweringPattern |
| FuncOpPartialLoweringPatterns are patterns which intend to match on FuncOps and then perform their own walking of the IR. More... | |
| class | circt::calyx::ConvertIndexTypes |
| Converts all index-typed operations and values to i32 values. More... | |
| struct | circt::calyx::NonTerminatingGroupDonePattern |
| GroupDoneOp's are terminator operations and should therefore be the last operator in a group. More... | |
| struct | circt::calyx::MultipleGroupDonePattern |
| When building groups which contain accesses to multiple sequential components, a group_done op is created for each of these. More... | |
| struct | circt::calyx::EliminateUnusedCombGroups |
| Removes calyx::CombGroupOps which are unused. More... | |
| struct | circt::calyx::DeduplicateParallelOp |
| Removes duplicate EnableOps in parallel operations. More... | |
| struct | circt::calyx::DeduplicateStaticParallelOp |
| Removes duplicate EnableOps in static parallel operations. More... | |
| class | circt::calyx::InlineCombGroups |
| This pass recursively inlines use-def chains of combinational logic (from non-stateful groups) into groups referenced in the control schedule. More... | |
| class | circt::calyx::RewriteMemoryAccesses |
| This pass rewrites memory accesses that have a width mismatch. More... | |
| class | circt::calyx::BuildBasicBlockRegs |
| Builds registers for each block argument in the program. More... | |
| class | circt::calyx::BuildReturnRegs |
| Builds registers for the return statement of the program and constant assignments to the component return value. More... | |
| class | circt::calyx::BuildCallInstance |
| Builds instance for the calyx.invoke and calyx.group in order to initialize the instance. More... | |
| struct | circt::calyx::PredicateInfo |
| Predicate information for the floating point comparisons. More... | |
| struct | circt::calyx::PredicateInfo::InputPorts |
Namespaces | |
| namespace | circt |
| The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
| namespace | circt::calyx |
Typedefs | |
| using | circt::calyx::PatternApplicationState = DenseMap< const mlir::RewritePattern *, SmallPtrSet< Operation *, 16 > > |
| Extra state that is passed to all PartialLoweringPatterns so they can record when they have run on an Operation, and only run once. | |
Functions | |
| void | circt::calyx::appendPortsForExternalMemref (PatternRewriter &rewriter, StringRef memName, Value memref, unsigned memoryID, SmallVectorImpl< calyx::PortInfo > &inPorts, SmallVectorImpl< calyx::PortInfo > &outPorts) |
| WalkResult | circt::calyx::getCiderSourceLocationMetadata (calyx::ComponentOp component, SmallVectorImpl< Attribute > &sourceLocations) |
| bool | circt::calyx::matchConstantOp (Operation *op, APInt &value) |
| bool | circt::calyx::singleLoadFromMemory (Value memoryReference) |
| bool | circt::calyx::noStoresToMemory (Value memoryReference) |
| Value | circt::calyx::getComponentOutput (calyx::ComponentOp compOp, unsigned outPortIdx) |
| Type | circt::calyx::normalizeType (OpBuilder &builder, Type type) |
| template<typename TGroup > | |
| TGroup | circt::calyx::createGroup (OpBuilder &builder, calyx::ComponentOp compOp, Location loc, Twine uniqueName) |
| void | circt::calyx::buildAssignmentsForRegisterWrite (OpBuilder &builder, calyx::GroupOp groupOp, calyx::ComponentOp componentOp, calyx::RegisterOp ®, Value inputValue) |
| Creates register assignment operations within the provided groupOp. | |
| LogicalResult | circt::calyx::applyModuleOpConversion (mlir::ModuleOp, StringRef topLevelFunction) |
| Helper to update the top-level ModuleOp to set the entrypoing function. | |
| PredicateInfo | circt::calyx::getPredicateInfo (mlir::arith::CmpFPredicate pred) |
| template<typename T > | |
| Type | circt::calyx::toBitVector (T type) |
| Performs a bit cast from a non-signless integer type value, such as a floating point value, to a signless integer type. | |
| bool | circt::calyx::parentIsSeqCell (Value value) |