CIRCT 23.0.0git
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
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/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/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/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 40 of file MooreToCore.cpp.

Function Documentation

◆ convert() [1/8]

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

Definition at line 2767 of file MooreToCore.cpp.

◆ convert() [2/8]

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

Definition at line 2852 of file MooreToCore.cpp.

◆ convert() [3/8]

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

Definition at line 2872 of file MooreToCore.cpp.

◆ convert() [4/8]

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

Definition at line 2775 of file MooreToCore.cpp.

◆ convert() [5/8]

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

Definition at line 2760 of file MooreToCore.cpp.

Referenced by populateOpConversion().

◆ convert() [6/8]

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

Definition at line 2865 of file MooreToCore.cpp.

◆ convert() [7/8]

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

Definition at line 2879 of file MooreToCore.cpp.

◆ convert() [8/8]

static 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 2812 of file MooreToCore.cpp.

References hw.ConstantOp::create().

◆ populateLegality()

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

Definition at line 2889 of file MooreToCore.cpp.

◆ populateOpConversion()

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

Definition at line 3139 of file MooreToCore.cpp.

References convert(), and circt::populateArithToCombPatterns().

◆ populateTypeConversion()

static void populateTypeConversion ( TypeConverter &  typeConverter)
static

Definition at line 2927 of file MooreToCore.cpp.

References elementType.