#include "circt/Dialect/LLHD/IR/LLHDOps.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/LLHD/IR/LLHDDialect.h"
#include "mlir/Dialect/CommonFolders.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/Region.h"
#include "mlir/IR/Types.h"
#include "mlir/IR/Value.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/TypeSwitch.h"
#include "circt/Dialect/LLHD/IR/LLHDEnums.cpp.inc"
#include "circt/Dialect/LLHD/IR/LLHD.cpp.inc"
Go to the source code of this file.
|
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class CalculationT = function_ref<ElementValueT(ElementValueT)>> |
static Attribute | constFoldUnaryOp (ArrayRef< Attribute > operands, const CalculationT &calculate) |
|
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class CalculationT = function_ref< ElementValueT(ElementValueT, ElementValueT, ElementValueT)>> |
static Attribute | constFoldTernaryOp (ArrayRef< Attribute > operands, const CalculationT &calculate) |
|
template<class Op > |
static OpFoldResult | foldSigPtrExtractOp (Op op, ArrayRef< Attribute > operands) |
|
template<class Op > |
static OpFoldResult | foldSigPtrArraySliceOp (Op op, ArrayRef< Attribute > operands) |
|
template<class Op > |
static LogicalResult | canonicalizeSigPtrArraySliceOp (Op op, PatternRewriter &rewriter) |
|
template<class SigPtrType > |
static LogicalResult | inferReturnTypesOfStructExtractOp (MLIRContext *context, std::optional< Location > loc, ValueRange operands, DictionaryAttr attrs, mlir::OpaqueProperties properties, mlir::RegionRange regions, SmallVectorImpl< Type > &results) |
|
◆ GET_OP_CLASSES
◆ canonicalizeSigPtrArraySliceOp()
template<class Op >
static LogicalResult canonicalizeSigPtrArraySliceOp |
( |
Op |
op, |
|
|
PatternRewriter & |
rewriter |
|
) |
| |
|
static |
◆ constFoldTernaryOp()
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class CalculationT = function_ref< ElementValueT(ElementValueT, ElementValueT, ElementValueT)>>
static Attribute constFoldTernaryOp |
( |
ArrayRef< Attribute > |
operands, |
|
|
const CalculationT & |
calculate |
|
) |
| |
|
static |
◆ constFoldUnaryOp()
template<class AttrElementT , class ElementValueT = typename AttrElementT::ValueType, class CalculationT = function_ref<ElementValueT(ElementValueT)>>
static Attribute constFoldUnaryOp |
( |
ArrayRef< Attribute > |
operands, |
|
|
const CalculationT & |
calculate |
|
) |
| |
|
static |
◆ foldSigPtrArraySliceOp()
template<class Op >
static OpFoldResult foldSigPtrArraySliceOp |
( |
Op |
op, |
|
|
ArrayRef< Attribute > |
operands |
|
) |
| |
|
static |
◆ foldSigPtrExtractOp()
template<class Op >
static OpFoldResult foldSigPtrExtractOp |
( |
Op |
op, |
|
|
ArrayRef< Attribute > |
operands |
|
) |
| |
|
static |
◆ inferReturnTypesOfStructExtractOp()
template<class SigPtrType >
static LogicalResult inferReturnTypesOfStructExtractOp |
( |
MLIRContext * |
context, |
|
|
std::optional< Location > |
loc, |
|
|
ValueRange |
operands, |
|
|
DictionaryAttr |
attrs, |
|
|
mlir::OpaqueProperties |
properties, |
|
|
mlir::RegionRange |
regions, |
|
|
SmallVectorImpl< Type > & |
results |
|
) |
| |
|
static |