MLIR  20.0.0git
Macros | Functions
PDL.cpp File Reference
#include "mlir/Dialect/PDL/IR/PDL.h"
#include "mlir/Dialect/PDL/IR/PDLOps.h"
#include "mlir/Dialect/PDL/IR/PDLTypes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/TypeSwitch.h"
#include <optional>
#include "mlir/Dialect/PDL/IR/PDLOpsDialect.cpp.inc"
#include "mlir/Dialect/PDL/IR/PDLOps.cpp.inc"

Go to the source code of this file.

Macros

#define GET_OP_LIST
 
#define GET_OP_CLASSES
 

Functions

static bool hasBindingUse (Operation *op)
 Returns true if the given operation is used by a "binding" pdl operation. More...
 
static LogicalResult verifyHasBindingUse (Operation *op)
 Returns success if the given operation is not in the main matcher body or is used by a "binding" operation. More...
 
static void visit (Operation *op, DenseSet< Operation * > &visited)
 Visits all the pdl.operand(s), pdl.result(s), and pdl.operation(s) connected to the given operation. More...
 
static ParseResult parseOperationOpAttributes (OpAsmParser &p, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &attrOperands, ArrayAttr &attrNamesAttr)
 
static void printOperationOpAttributes (OpAsmPrinter &p, OperationOp op, OperandRange attrArgs, ArrayAttr attrNames)
 
static LogicalResult verifyResultTypesAreInferrable (OperationOp op, OperandRange resultTypes)
 Verifies that the result types of this operation, defined within a pdl.rewrite, can be inferred. More...
 
static ParseResult parseRangeType (OpAsmParser &p, TypeRange argumentTypes, Type &resultType)
 
static void printRangeType (OpAsmPrinter &p, RangeOp op, TypeRange argumentTypes, Type resultType)
 
static ParseResult parseResultsValueType (OpAsmParser &p, IntegerAttr index, Type &resultType)
 
static void printResultsValueType (OpAsmPrinter &p, ResultsOp op, IntegerAttr index, Type resultType)
 

Macro Definition Documentation

◆ GET_OP_CLASSES

#define GET_OP_CLASSES

Definition at line 539 of file PDL.cpp.

◆ GET_OP_LIST

#define GET_OP_LIST

Function Documentation

◆ hasBindingUse()

static bool hasBindingUse ( Operation op)
static

Returns true if the given operation is used by a "binding" pdl operation.

Definition at line 40 of file PDL.cpp.

References mlir::Operation::getUsers().

Referenced by verifyHasBindingUse().

◆ parseOperationOpAttributes()

static ParseResult parseOperationOpAttributes ( OpAsmParser p,
SmallVectorImpl< OpAsmParser::UnresolvedOperand > &  attrOperands,
ArrayAttr &  attrNamesAttr 
)
static

◆ parseRangeType()

static ParseResult parseRangeType ( OpAsmParser p,
TypeRange  argumentTypes,
Type resultType 
)
static

◆ parseResultsValueType()

static ParseResult parseResultsValueType ( OpAsmParser p,
IntegerAttr  index,
Type resultType 
)
static

◆ printOperationOpAttributes()

static void printOperationOpAttributes ( OpAsmPrinter p,
OperationOp  op,
OperandRange  attrArgs,
ArrayAttr  attrNames 
)
static

Definition at line 172 of file PDL.cpp.

◆ printRangeType()

static void printRangeType ( OpAsmPrinter p,
RangeOp  op,
TypeRange  argumentTypes,
Type  resultType 
)
static

Definition at line 420 of file PDL.cpp.

◆ printResultsValueType()

static void printResultsValueType ( OpAsmPrinter p,
ResultsOp  op,
IntegerAttr  index,
Type  resultType 
)
static

Definition at line 464 of file PDL.cpp.

◆ verifyHasBindingUse()

static LogicalResult verifyHasBindingUse ( Operation op)
static

Returns success if the given operation is not in the main matcher body or is used by a "binding" operation.

On failure, emits an error.

Definition at line 50 of file PDL.cpp.

References mlir::Operation::emitOpError(), mlir::Operation::getParentOp(), and hasBindingUse().

◆ verifyResultTypesAreInferrable()

static LogicalResult verifyResultTypesAreInferrable ( OperationOp  op,
OperandRange  resultTypes 
)
static

Verifies that the result types of this operation, defined within a pdl.rewrite, can be inferred.

Definition at line 185 of file PDL.cpp.

References mlir::detail::enumerate(), mlir::Operation::getBlock(), mlir::Operation::isBeforeInBlock(), and mlir::RegisteredOperationName::lookup().

◆ visit()

static void visit ( Operation op,
DenseSet< Operation * > &  visited 
)
static

Visits all the pdl.operand(s), pdl.result(s), and pdl.operation(s) connected to the given operation.

Definition at line 63 of file PDL.cpp.

References mlir::Operation::getParentOp(), and mlir::Operation::getUsers().

Referenced by GpuAsyncRegionPass::ThreadTokenCallback::operator()(), verifyCopyprivateVarList(), and HasAffineDimExprVisitor::visitAffineBinaryOpExpr().