CIRCT 24.0.0git
Loading...
Searching...
No Matches
MooreToCore.cpp File Reference
#include "circt/Conversion/MooreToCore.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/Debug/DebugOps.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/HW/HWTypes.h"
#include "circt/Dialect/LLHD/LLHDOps.h"
#include "circt/Dialect/LTL/LTLOps.h"
#include "circt/Dialect/Moore/MooreOps.h"
#include "circt/Dialect/SV/SVAttributes.h"
#include "circt/Dialect/Sim/SimOps.h"
#include "circt/Dialect/Verif/VerifOps.h"
#include "circt/Support/ConversionPatternSet.h"
#include "circt/Transforms/Passes.h"
#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Arith/IR/ArithAttributes.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/Dialect/ControlFlow/Transforms/StructuralTypeConversions.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/Dialect/Math/IR/Math.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/UB/IR/UBOps.h"
#include "mlir/IR/BuiltinDialect.h"
#include "mlir/IR/Iterators.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/DialectConversion.h"
#include "mlir/Transforms/RegionUtils.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/IR/DerivedTypes.h"
#include "circt/Conversion/Passes.h.inc"
Include dependency graph for MooreToCore.cpp:

Go to the source code of this file.

Namespaces

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.

Macros

#define GEN_PASS_DEF_CONVERTMOORETOCORE

Functions

static LogicalResult convert (StopBIOp op, StopBIOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static LogicalResult convert (FinishBIOp op, FinishBIOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static LogicalResult convert (SeverityBIOp op, SeverityBIOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static LogicalResult convert (UrandomRangeBIOp op, UrandomRangeBIOp::Adaptor adaptor, ConversionPatternRewriter &rewriter, FunctionCache &funcCache)
 moore.builtin.urandom_range -> call @__circt_urandom_range(i32, i32, ptr)
static LogicalResult convert (FinishMessageBIOp op, FinishMessageBIOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static LogicalResult convert (TimeBIOp op, TimeBIOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static LogicalResult convert (LogicToTimeOp op, LogicToTimeOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static LogicalResult convert (TimeToLogicOp op, TimeToLogicOp::Adaptor adaptor, ConversionPatternRewriter &rewriter)
static void populateLegality (ConversionTarget &target, const TypeConverter &converter)
static void populateTypeConversion (TypeConverter &typeConverter)
static void populateOpConversion (ConversionPatternSet &patterns, TypeConverter &typeConverter, ClassTypeCache &classCache, FunctionCache &funcCache)

Macro Definition Documentation

◆ GEN_PASS_DEF_CONVERTMOORETOCORE

#define GEN_PASS_DEF_CONVERTMOORETOCORE

Definition at line 43 of file MooreToCore.cpp.

Function Documentation

◆ convert() [1/8]

LogicalResult convert ( FinishBIOp op,
FinishBIOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3755 of file MooreToCore.cpp.

References success().

◆ convert() [2/8]

LogicalResult convert ( FinishMessageBIOp op,
FinishMessageBIOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3836 of file MooreToCore.cpp.

References success().

◆ convert() [3/8]

LogicalResult convert ( LogicToTimeOp op,
LogicToTimeOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3856 of file MooreToCore.cpp.

References success().

◆ convert() [4/8]

LogicalResult convert ( SeverityBIOp op,
SeverityBIOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3763 of file MooreToCore.cpp.

References success().

◆ convert() [5/8]

LogicalResult convert ( StopBIOp op,
StopBIOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3748 of file MooreToCore.cpp.

References success().

◆ convert() [6/8]

LogicalResult convert ( TimeBIOp op,
TimeBIOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3849 of file MooreToCore.cpp.

References success().

◆ convert() [7/8]

LogicalResult convert ( TimeToLogicOp op,
TimeToLogicOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter )
static

Definition at line 3863 of file MooreToCore.cpp.

References success().

◆ convert() [8/8]

LogicalResult convert ( UrandomRangeBIOp op,
UrandomRangeBIOp::Adaptor adaptor,
ConversionPatternRewriter & rewriter,
FunctionCache & funcCache )
static

moore.builtin.urandom_range -> call @__circt_urandom_range(i32, i32, ptr)

The seed pointer is null when no seed is provided. When a seed ref is present, we probe the current value into an alloca before the call, and drive the (potentially mutated) value back after.

Definition at line 3800 of file MooreToCore.cpp.

References hw.ConstantOp::create(), and success().

◆ populateLegality()

void populateLegality ( ConversionTarget & target,
const TypeConverter & converter )
static

Definition at line 3873 of file MooreToCore.cpp.

◆ populateOpConversion()

void populateOpConversion ( ConversionPatternSet & patterns,
TypeConverter & typeConverter,
ClassTypeCache & classCache,
FunctionCache & funcCache )
static

◆ populateTypeConversion()

void populateTypeConversion ( TypeConverter & typeConverter)
static

Definition at line 3912 of file MooreToCore.cpp.

References elementType, circt::moore::f32, and circt::moore::f64.