#include "circt/Dialect/LLHD/IR/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 "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "circt/Dialect/LLHD/IR/LLHD.cpp.inc"
#include "circt/Dialect/LLHD/IR/LLHDEnums.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 >
| static LogicalResult canonicalizeSigPtrArraySliceOp |
( |
Op |
op, |
|
|
PatternRewriter & |
rewriter |
|
) |
| |
|
static |
◆ foldSigPtrExtractOp()
template<class Op >
| static OpFoldResult foldSigPtrExtractOp |
( |
Op |
op, |
|
|
ArrayRef< Attribute > |
operands |
|
) |
| |
|
static |
◆ getIntegerSubelementIndexMap()
| static std::optional< DenseMap< Attribute, Type > > getIntegerSubelementIndexMap |
( |
Type |
type, |
|
|
Value |
value |
|
) |
| |
|
static |
◆ getSortedPtrs() [1/2]
| static void getSortedPtrs |
( |
const DenseMap< Attribute, Type > & |
subslots, |
|
|
SmallVectorImpl< std::pair< unsigned, Type > > & |
sorted |
|
) |
| |
|
static |
◆ getSortedPtrs() [2/2]
| static void getSortedPtrs |
( |
DenseMap< Attribute, MemorySlot > & |
subslots, |
|
|
SmallVectorImpl< std::pair< unsigned, Value > > & |
sorted |
|
) |
| |
|
static |
◆ getSubelementIndexMap()
| static std::optional< DenseMap< Attribute, Type > > getSubelementIndexMap |
( |
Type |
type, |
|
|
Value |
value |
|
) |
| |
|
static |
◆ getValueAtIndex()
| static Value getValueAtIndex |
( |
OpBuilder & |
builder, |
|
|
Location |
loc, |
|
|
Value |
val, |
|
|
unsigned |
index, |
|
|
Type |
resultType |
|
) |
| |
|
static |
◆ hasUserOfKind()
template<typename... OpTypes>
| static bool hasUserOfKind |
( |
Operation * |
op | ) |
|
|
static |
◆ intervalOverlap()
| static int64_t intervalOverlap |
( |
int64_t |
a1, |
|
|
int64_t |
a2, |
|
|
int64_t |
b1, |
|
|
int64_t |
b2 |
|
) |
| |
|
static |
◆ verifyYieldResults()
| static LogicalResult verifyYieldResults |
( |
Operation * |
op, |
|
|
ValueRange |
yieldOperands |
|
) |
| |
|
static |