#include "circt/Dialect/LLHD/LLHDOps.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Support/CustomDirectiveImpl.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinDialect.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/Region.h"
#include "mlir/IR/Types.h"
#include "mlir/IR/Value.h"
#include "mlir/Interfaces/FunctionImplementation.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "circt/Dialect/LLHD/LLHD.cpp.inc"
#include "circt/Dialect/LLHD/LLHDEnums.cpp.inc"
#include "circt/Dialect/LLHD/LLHDInterfaces.cpp.inc"
Go to the source code of this file.
|
| template<typename... OpTypes> |
| static bool | hasUserOfKind (Operation *op) |
| static Value | getValueAtIndex (OpBuilder &builder, Location loc, Value val, unsigned index, Type resultType) |
| static std::optional< DenseMap< Attribute, Type > > | getIntegerSubelementIndexMap (Type type, Value value) |
| static std::optional< DenseMap< Attribute, Type > > | getSubelementIndexMap (Type type, Value value) |
| template<class Op> |
| static OpFoldResult | foldSigPtrExtractOp (Op op, ArrayRef< Attribute > operands) |
| static int64_t | intervalOverlap (int64_t a1, int64_t a2, int64_t b1, int64_t b2) |
| static void | getSortedPtrs (DenseMap< Attribute, MemorySlot > &subslots, SmallVectorImpl< std::pair< unsigned, Value > > &sorted) |
| static void | getSortedPtrs (const DenseMap< Attribute, Type > &subslots, SmallVectorImpl< std::pair< unsigned, Type > > &sorted) |
| template<class Op> |
| static LogicalResult | canonicalizeSigPtrArraySliceOp (Op op, PatternRewriter &rewriter) |
| static LogicalResult | verifyYieldResults (Operation *op, ValueRange yieldOperands) |
◆ GET_OP_CLASSES
◆ canonicalizeSigPtrArraySliceOp()
template<class Op>
| LogicalResult canonicalizeSigPtrArraySliceOp |
( |
Op | op, |
|
|
PatternRewriter & | rewriter ) |
|
static |
◆ foldSigPtrExtractOp()
template<class Op>
| OpFoldResult foldSigPtrExtractOp |
( |
Op | op, |
|
|
ArrayRef< Attribute > | operands ) |
|
static |
◆ getIntegerSubelementIndexMap()
| std::optional< DenseMap< Attribute, Type > > getIntegerSubelementIndexMap |
( |
Type | type, |
|
|
Value | value ) |
|
static |
◆ getSortedPtrs() [1/2]
| void getSortedPtrs |
( |
const DenseMap< Attribute, Type > & | subslots, |
|
|
SmallVectorImpl< std::pair< unsigned, Type > > & | sorted ) |
|
static |
◆ getSortedPtrs() [2/2]
| void getSortedPtrs |
( |
DenseMap< Attribute, MemorySlot > & | subslots, |
|
|
SmallVectorImpl< std::pair< unsigned, Value > > & | sorted ) |
|
static |
◆ getSubelementIndexMap()
| std::optional< DenseMap< Attribute, Type > > getSubelementIndexMap |
( |
Type | type, |
|
|
Value | value ) |
|
static |
◆ getValueAtIndex()
| Value getValueAtIndex |
( |
OpBuilder & | builder, |
|
|
Location | loc, |
|
|
Value | val, |
|
|
unsigned | index, |
|
|
Type | resultType ) |
|
static |
◆ hasUserOfKind()
template<typename... OpTypes>
| bool hasUserOfKind |
( |
Operation * | op | ) |
|
|
static |
◆ intervalOverlap()
| int64_t intervalOverlap |
( |
int64_t | a1, |
|
|
int64_t | a2, |
|
|
int64_t | b1, |
|
|
int64_t | b2 ) |
|
static |
◆ verifyYieldResults()
| LogicalResult verifyYieldResults |
( |
Operation * | op, |
|
|
ValueRange | yieldOperands ) |
|
static |