CIRCT  20.0.0git
Classes | Functions
circt::arc Namespace Reference

Classes

struct  OperationCosts
 
class  ArcCostModel
 
class  RuntimeCostEstimateDialectInterface
 A dialect interface to get runtime cost estimates of MLIR operations. More...
 
struct  ArcReducePatternDialectInterface
 A dialect interface to provide reduction patterns to a reducer tool. More...
 
struct  StateInfo
 Gathers information about a given Arc state. More...
 
struct  ModelInfo
 Gathers information about a given Arc model. More...
 

Functions

void registerCombRuntimeCostEstimateInterface (mlir::DialectRegistry &registry)
 
void registerHWRuntimeCostEstimateInterface (mlir::DialectRegistry &registry)
 
void registerSCFRuntimeCostEstimateInterface (mlir::DialectRegistry &registry)
 
void initAllExternalInterfaces (mlir::DialectRegistry &registry)
 
std::unique_ptr< mlir::Pass > createAddTapsPass (const AddTapsOptions &options={})
 
std::unique_ptr< mlir::Pass > createAllocateStatePass ()
 
std::unique_ptr< mlir::Pass > createArcCanonicalizerPass ()
 
std::unique_ptr< mlir::Pass > createDedupPass ()
 
std::unique_ptr< mlir::Pass > createFindInitialVectorsPass ()
 
std::unique_ptr< mlir::Pass > createGroupResetsAndEnablesPass ()
 
std::unique_ptr< mlir::Pass > createInferMemoriesPass (const InferMemoriesOptions &options={})
 
std::unique_ptr< mlir::Pass > createInlineArcsPass ()
 
std::unique_ptr< mlir::Pass > createIsolateClocksPass ()
 
std::unique_ptr< mlir::Pass > createLatencyRetimingPass ()
 
std::unique_ptr< mlir::Pass > createLegalizeStateUpdatePass ()
 
std::unique_ptr< mlir::Pass > createLowerArcsToFuncsPass ()
 
std::unique_ptr< mlir::Pass > createLowerClocksToFuncsPass ()
 
std::unique_ptr< mlir::Pass > createLowerLUTPass ()
 
std::unique_ptr< mlir::Pass > createLowerStatePass ()
 
std::unique_ptr< mlir::Pass > createLowerVectorizationsPass (LowerVectorizationsModeEnum mode=LowerVectorizationsModeEnum::Full)
 
std::unique_ptr< mlir::Pass > createMakeTablesPass ()
 
std::unique_ptr< mlir::Pass > createMuxToControlFlowPass ()
 
std::unique_ptr< mlir::Pass > createPrintCostModelPass ()
 
std::unique_ptr< mlir::Pass > createSimplifyVariadicOpsPass ()
 
std::unique_ptr< mlir::Pass > createSplitLoopsPass ()
 
std::unique_ptr< mlir::Pass > createStripSVPass ()
 
void registerReducePatternDialectInterface (mlir::DialectRegistry &registry)
 Register the Arc Reduction pattern dialect interface to the given registry. More...
 
mlir::LogicalResult collectStates (mlir::Value storage, unsigned offset, llvm::SmallVector< StateInfo > &states)
 Collects information about states within the provided Arc model storage storage, assuming default offset, and adds it to states. More...
 
mlir::LogicalResult collectModels (mlir::ModuleOp module, llvm::SmallVector< ModelInfo > &models)
 Collects information about all Arc models in the provided module, and adds it to models. More...
 
void serializeModelInfoToJson (llvm::raw_ostream &outputStream, llvm::ArrayRef< ModelInfo > models)
 Serializes models to outputStream in JSON format. More...
 
mlir::LogicalResult collectAndExportModelInfo (mlir::ModuleOp module, llvm::raw_ostream &os)
 Collects and exports Arc model info to JSON. More...
 
void registerArcModelInfoTranslation ()
 Registers CIRCT translation from Arc to JSON model info. More...
 

Function Documentation

◆ collectAndExportModelInfo()

mlir::LogicalResult circt::arc::collectAndExportModelInfo ( mlir::ModuleOp  module,
llvm::raw_ostream &  os 
)

Collects and exports Arc model info to JSON.

Referenced by registerArcModelInfoTranslation().

◆ collectModels()

mlir::LogicalResult circt::arc::collectModels ( mlir::ModuleOp  module,
llvm::SmallVector< ModelInfo > &  models 
)

Collects information about all Arc models in the provided module, and adds it to models.

◆ collectStates()

mlir::LogicalResult circt::arc::collectStates ( mlir::Value  storage,
unsigned  offset,
llvm::SmallVector< StateInfo > &  states 
)

Collects information about states within the provided Arc model storage storage, assuming default offset, and adds it to states.

◆ createAddTapsPass()

std::unique_ptr< Pass > circt::arc::createAddTapsPass ( const AddTapsOptions &  options = {})

Definition at line 103 of file AddTaps.cpp.

◆ createAllocateStatePass()

std::unique_ptr< Pass > circt::arc::createAllocateStatePass ( )

Definition at line 167 of file AllocateState.cpp.

◆ createArcCanonicalizerPass()

std::unique_ptr< mlir::Pass > circt::arc::createArcCanonicalizerPass ( )

◆ createDedupPass()

std::unique_ptr< Pass > circt::arc::createDedupPass ( )

◆ createFindInitialVectorsPass()

std::unique_ptr< Pass > circt::arc::createFindInitialVectorsPass ( )

Definition at line 277 of file FindInitialVectors.cpp.

◆ createGroupResetsAndEnablesPass()

std::unique_ptr< Pass > circt::arc::createGroupResetsAndEnablesPass ( )

Definition at line 222 of file GroupResetsAndEnables.cpp.

◆ createInferMemoriesPass()

std::unique_ptr< Pass > circt::arc::createInferMemoriesPass ( const InferMemoriesOptions &  options = {})

Definition at line 332 of file InferMemories.cpp.

◆ createInlineArcsPass()

std::unique_ptr< Pass > circt::arc::createInlineArcsPass ( )

Definition at line 359 of file InlineArcs.cpp.

◆ createIsolateClocksPass()

std::unique_ptr< Pass > circt::arc::createIsolateClocksPass ( )

Definition at line 225 of file IsolateClocks.cpp.

◆ createLatencyRetimingPass()

std::unique_ptr< Pass > circt::arc::createLatencyRetimingPass ( )

Definition at line 208 of file LatencyRetiming.cpp.

◆ createLegalizeStateUpdatePass()

std::unique_ptr< Pass > circt::arc::createLegalizeStateUpdatePass ( )

Definition at line 595 of file LegalizeStateUpdate.cpp.

◆ createLowerArcsToFuncsPass()

std::unique_ptr< Pass > circt::arc::createLowerArcsToFuncsPass ( )

Definition at line 136 of file LowerArcsToFuncs.cpp.

◆ createLowerClocksToFuncsPass()

std::unique_ptr< Pass > circt::arc::createLowerClocksToFuncsPass ( )

Definition at line 271 of file LowerClocksToFuncs.cpp.

◆ createLowerLUTPass()

std::unique_ptr< Pass > circt::arc::createLowerLUTPass ( )

Definition at line 377 of file LowerLUT.cpp.

◆ createLowerStatePass()

std::unique_ptr< Pass > circt::arc::createLowerStatePass ( )

Definition at line 956 of file LowerState.cpp.

◆ createLowerVectorizationsPass()

std::unique_ptr< Pass > circt::arc::createLowerVectorizationsPass ( LowerVectorizationsModeEnum  mode = LowerVectorizationsModeEnum::Full)

Definition at line 284 of file LowerVectorizations.cpp.

◆ createMakeTablesPass()

std::unique_ptr< Pass > circt::arc::createMakeTablesPass ( )

Definition at line 185 of file MakeTables.cpp.

◆ createMuxToControlFlowPass()

std::unique_ptr< Pass > circt::arc::createMuxToControlFlowPass ( )

Definition at line 336 of file MuxToControlFlow.cpp.

◆ createPrintCostModelPass()

std::unique_ptr< Pass > circt::arc::createPrintCostModelPass ( )

Definition at line 54 of file PrintCostModel.cpp.

◆ createSimplifyVariadicOpsPass()

std::unique_ptr< Pass > circt::arc::createSimplifyVariadicOpsPass ( )

Definition at line 126 of file SimplifyVariadicOps.cpp.

◆ createSplitLoopsPass()

std::unique_ptr< Pass > circt::arc::createSplitLoopsPass ( )

Definition at line 426 of file SplitLoops.cpp.

◆ createStripSVPass()

std::unique_ptr< Pass > circt::arc::createStripSVPass ( )

◆ initAllExternalInterfaces()

void circt::arc::initAllExternalInterfaces ( mlir::DialectRegistry &  registry)
inline

◆ registerArcModelInfoTranslation()

void circt::arc::registerArcModelInfoTranslation ( )

Registers CIRCT translation from Arc to JSON model info.

Definition at line 32 of file ModelInfoExport.cpp.

References collectAndExportModelInfo().

Referenced by circt::registerAllTranslations().

◆ registerCombRuntimeCostEstimateInterface()

void circt::arc::registerCombRuntimeCostEstimateInterface ( mlir::DialectRegistry &  registry)

Definition at line 115 of file RuntimeCostEstimateInterfaceImpl.cpp.

Referenced by initAllExternalInterfaces().

◆ registerHWRuntimeCostEstimateInterface()

void circt::arc::registerHWRuntimeCostEstimateInterface ( mlir::DialectRegistry &  registry)

Definition at line 122 of file RuntimeCostEstimateInterfaceImpl.cpp.

Referenced by initAllExternalInterfaces().

◆ registerReducePatternDialectInterface()

void circt::arc::registerReducePatternDialectInterface ( mlir::DialectRegistry &  registry)

Register the Arc Reduction pattern dialect interface to the given registry.

Definition at line 63 of file ArcReductions.cpp.

◆ registerSCFRuntimeCostEstimateInterface()

void circt::arc::registerSCFRuntimeCostEstimateInterface ( mlir::DialectRegistry &  registry)

Definition at line 129 of file RuntimeCostEstimateInterfaceImpl.cpp.

Referenced by initAllExternalInterfaces().

◆ serializeModelInfoToJson()

void circt::arc::serializeModelInfoToJson ( llvm::raw_ostream &  outputStream,
llvm::ArrayRef< ModelInfo models 
)

Serializes models to outputStream in JSON format.