CIRCT
20.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 <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... | |
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 | |
circt | |
The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
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. More... | |
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. More... | |
LogicalResult | circt::calyx::applyModuleOpConversion (mlir::ModuleOp, StringRef topLevelFunction) |
Helper to update the top-level ModuleOp to set the entrypoing function. More... | |
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. More... | |