CIRCT 22.0.0git
Loading...
Searching...
No Matches
Macros | Functions
LLHDOps.cpp File Reference
#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"
Include dependency graph for LLHDOps.cpp:

Go to the source code of this file.

Macros

#define GET_OP_CLASSES
 

Functions

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)
 

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 849 of file LLHDOps.cpp.

Function Documentation

◆ canonicalizeSigPtrArraySliceOp()

template<class Op >
static LogicalResult canonicalizeSigPtrArraySliceOp ( Op  op,
PatternRewriter &  rewriter 
)
static

Definition at line 393 of file LLHDOps.cpp.

References hw.ConstantOp::create().

◆ foldSigPtrExtractOp()

template<class Op >
static OpFoldResult foldSigPtrExtractOp ( Op  op,
ArrayRef< Attribute >  operands 
)
static

Definition at line 228 of file LLHDOps.cpp.

◆ getIntegerSubelementIndexMap()

static std::optional< DenseMap< Attribute, Type > > getIntegerSubelementIndexMap ( Type  type,
Value  value 
)
static

Definition at line 108 of file LLHDOps.cpp.

Referenced by getSubelementIndexMap().

◆ getSortedPtrs() [1/2]

static void getSortedPtrs ( const DenseMap< Attribute, Type > &  subslots,
SmallVectorImpl< std::pair< unsigned, Type > > &  sorted 
)
static

Definition at line 260 of file LLHDOps.cpp.

References assert().

◆ getSortedPtrs() [2/2]

static void getSortedPtrs ( DenseMap< Attribute, MemorySlot > &  subslots,
SmallVectorImpl< std::pair< unsigned, Value > > &  sorted 
)
static

Definition at line 250 of file LLHDOps.cpp.

References assert().

◆ getSubelementIndexMap()

static std::optional< DenseMap< Attribute, Type > > getSubelementIndexMap ( Type  type,
Value  value 
)
static

Definition at line 155 of file LLHDOps.cpp.

References getIntegerSubelementIndexMap().

◆ 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

Definition at line 48 of file LLHDOps.cpp.

◆ intervalOverlap()

static int64_t intervalOverlap ( int64_t  a1,
int64_t  a2,
int64_t  b1,
int64_t  b2 
)
static

Definition at line 246 of file LLHDOps.cpp.

◆ verifyYieldResults()

static LogicalResult verifyYieldResults ( Operation *  op,
ValueRange  yieldOperands 
)
static

Definition at line 763 of file LLHDOps.cpp.