MLIR
21.0.0git
|
#include "mlir/Dialect/OpenACC/OpenACC.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/DialectImplementation.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Transforms/DialectConversion.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/LogicalResult.h"
#include "mlir/Dialect/OpenACC/OpenACCOpsDialect.cpp.inc"
#include "mlir/Dialect/OpenACC/OpenACCOpsEnums.cpp.inc"
#include "mlir/Dialect/OpenACC/OpenACCOpsInterfaces.cpp.inc"
#include "mlir/Dialect/OpenACC/OpenACCTypeInterfaces.cpp.inc"
#include "mlir/Dialect/OpenACCMPCommon/Interfaces/OpenACCMPOpsInterfaces.cpp.inc"
#include "mlir/Dialect/OpenACC/OpenACCOps.cpp.inc"
#include "mlir/Dialect/OpenACC/OpenACCOpsAttributes.cpp.inc"
#include "mlir/Dialect/OpenACC/OpenACCOpsTypes.cpp.inc"
Go to the source code of this file.
Macros | |
#define | GET_OP_LIST |
#define | GET_ATTRDEF_LIST |
#define | GET_TYPEDEF_LIST |
#define | GET_OP_CLASSES |
#define | GET_ATTRDEF_CLASSES |
#define | GET_TYPEDEF_CLASSES |
Functions | |
static bool | hasDeviceTypeValues (std::optional< mlir::ArrayAttr > arrayAttr) |
static bool | hasDeviceType (std::optional< mlir::ArrayAttr > arrayAttr, mlir::acc::DeviceType deviceType) |
static void | printDeviceTypes (mlir::OpAsmPrinter &p, std::optional< mlir::ArrayAttr > deviceTypes) |
static std::optional< unsigned > | findSegment (ArrayAttr segments, mlir::acc::DeviceType deviceType) |
static mlir::Operation::operand_range | getValuesFromSegments (std::optional< mlir::ArrayAttr > arrayAttr, mlir::Operation::operand_range range, std::optional< llvm::ArrayRef< int32_t >> segments, mlir::acc::DeviceType deviceType) |
static mlir::Value | getWaitDevnumValue (std::optional< mlir::ArrayAttr > deviceTypeAttr, mlir::Operation::operand_range operands, std::optional< llvm::ArrayRef< int32_t >> segments, std::optional< mlir::ArrayAttr > hasWaitDevnum, mlir::acc::DeviceType deviceType) |
static mlir::Operation::operand_range | getWaitValuesWithoutDevnum (std::optional< mlir::ArrayAttr > deviceTypeAttr, mlir::Operation::operand_range operands, std::optional< llvm::ArrayRef< int32_t >> segments, std::optional< mlir::ArrayAttr > hasWaitDevnum, mlir::acc::DeviceType deviceType) |
template<typename Op > | |
static LogicalResult | checkWaitAndAsyncConflict (Op op) |
template<typename Op > | |
static LogicalResult | checkVarAndVarType (Op op) |
template<typename Op > | |
static LogicalResult | checkVarAndAccVar (Op op) |
static ParseResult | parseVar (mlir::OpAsmParser &parser, OpAsmParser::UnresolvedOperand &var) |
static void | printVar (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::Value var) |
static ParseResult | parseAccVar (mlir::OpAsmParser &parser, OpAsmParser::UnresolvedOperand &var, mlir::Type &accVarType) |
static void | printAccVar (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::Value accVar, mlir::Type accVarType) |
static ParseResult | parseVarPtrType (mlir::OpAsmParser &parser, mlir::Type &varPtrType, mlir::TypeAttr &varTypeAttr) |
static void | printVarPtrType (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::Type varPtrType, mlir::TypeAttr varTypeAttr) |
template<typename StructureOp > | |
static ParseResult | parseRegions (OpAsmParser &parser, OperationState &state, unsigned nRegions=1) |
static bool | isComputeOperation (Operation *op) |
static LogicalResult | verifyInitLikeSingleArgRegion (Operation *op, Region ®ion, StringRef regionType, StringRef regionName, Type type, bool verifyYield, bool optional=false) |
static ParseResult | parseSymOperandList (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, mlir::ArrayAttr &symbols) |
static void | printSymOperandList (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > attributes) |
template<typename Op > | |
static LogicalResult | checkDataOperands (Op op, const mlir::ValueRange &operands) |
Check dataOperands for acc.parallel, acc.serial and acc.kernels. More... | |
template<typename Op > | |
static LogicalResult | checkSymOperandList (Operation *op, std::optional< mlir::ArrayAttr > attributes, mlir::OperandRange operands, llvm::StringRef operandName, llvm::StringRef symbolName, bool checkOperandType=true) |
template<typename Op > | |
static LogicalResult | verifyDeviceTypeCountMatch (Op op, OperandRange operands, ArrayAttr deviceTypes, llvm::StringRef keyword) |
template<typename Op > | |
static LogicalResult | verifyDeviceTypeAndSegmentCountMatch (Op op, OperandRange operands, DenseI32ArrayAttr segments, ArrayAttr deviceTypes, llvm::StringRef keyword, int32_t maxInSegment=0) |
static mlir::Value | getValueInDeviceTypeSegment (std::optional< mlir::ArrayAttr > arrayAttr, mlir::Operation::operand_range range, mlir::acc::DeviceType deviceType) |
static ParseResult | parseNumGangs (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, mlir::ArrayAttr &deviceTypes, mlir::DenseI32ArrayAttr &segments) |
static void | printSingleDeviceType (mlir::OpAsmPrinter &p, mlir::Attribute attr) |
static void | printNumGangs (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > deviceTypes, std::optional< mlir::DenseI32ArrayAttr > segments) |
static ParseResult | parseDeviceTypeOperandsWithSegment (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, mlir::ArrayAttr &deviceTypes, mlir::DenseI32ArrayAttr &segments) |
static void | printDeviceTypeOperandsWithSegment (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > deviceTypes, std::optional< mlir::DenseI32ArrayAttr > segments) |
static ParseResult | parseWaitClause (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, mlir::ArrayAttr &deviceTypes, mlir::DenseI32ArrayAttr &segments, mlir::ArrayAttr &hasDevNum, mlir::ArrayAttr &keywordOnly) |
static bool | hasOnlyDeviceTypeNone (std::optional< mlir::ArrayAttr > attrs) |
static void | printWaitClause (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > deviceTypes, std::optional< mlir::DenseI32ArrayAttr > segments, std::optional< mlir::ArrayAttr > hasDevNum, std::optional< mlir::ArrayAttr > keywordOnly) |
static ParseResult | parseDeviceTypeOperands (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, mlir::ArrayAttr &deviceTypes) |
static void | printDeviceTypeOperands (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > deviceTypes) |
static ParseResult | parseDeviceTypeOperandsWithKeywordOnly (mlir::OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, mlir::ArrayAttr &deviceTypes, mlir::ArrayAttr &keywordOnlyDeviceType) |
static void | printDeviceTypeOperandsWithKeywordOnly (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > deviceTypes, std::optional< mlir::ArrayAttr > keywordOnlyDeviceTypes) |
static ParseResult | parseCombinedConstructsLoop (mlir::OpAsmParser &parser, mlir::acc::CombinedConstructsTypeAttr &attr) |
static void | printCombinedConstructsLoop (mlir::OpAsmPrinter &p, mlir::Operation *op, mlir::acc::CombinedConstructsTypeAttr attr) |
static ParseResult | parseGangValue (OpAsmParser &parser, llvm::StringRef keyword, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &operands, llvm::SmallVectorImpl< Type > &types, llvm::SmallVector< GangArgTypeAttr > &attributes, GangArgTypeAttr gangArgType, bool &needCommaBetweenValues, bool &newValue) |
static ParseResult | parseGangClause (OpAsmParser &parser, llvm::SmallVectorImpl< mlir::OpAsmParser::UnresolvedOperand > &gangOperands, llvm::SmallVectorImpl< Type > &gangOperandsType, mlir::ArrayAttr &gangArgType, mlir::ArrayAttr &deviceType, mlir::DenseI32ArrayAttr &segments, mlir::ArrayAttr &gangOnlyDeviceType) |
void | printGangClause (OpAsmPrinter &p, Operation *op, mlir::OperandRange operands, mlir::TypeRange types, std::optional< mlir::ArrayAttr > gangArgTypes, std::optional< mlir::ArrayAttr > deviceTypes, std::optional< mlir::DenseI32ArrayAttr > segments, std::optional< mlir::ArrayAttr > gangOnlyDeviceTypes) |
bool | hasDuplicateDeviceTypes (std::optional< mlir::ArrayAttr > segments, llvm::SmallSet< mlir::acc::DeviceType, 3 > &deviceTypes) |
LogicalResult | checkDeviceTypes (mlir::ArrayAttr deviceTypes) |
Check for duplicates in the DeviceType array attribute. More... | |
ParseResult | parseLoopControl (OpAsmParser &parser, Region ®ion, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &lowerbound, SmallVectorImpl< Type > &lowerboundType, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &upperbound, SmallVectorImpl< Type > &upperboundType, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &step, SmallVectorImpl< Type > &stepType) |
loop-control ::= control ( ssa-id-and-type-list ) = ( ssa-id-and-type-list ) to ( ssa-id-and-type-list ) step ( ssa-id-and-type-list ) region More... | |
void | printLoopControl (OpAsmPrinter &p, Operation *op, Region ®ion, ValueRange lowerbound, TypeRange lowerboundType, ValueRange upperbound, TypeRange upperboundType, ValueRange steps, TypeRange stepType) |
template<typename Op > | |
static LogicalResult | checkDeclareOperands (Op &op, const mlir::ValueRange &operands, bool requireAtLeastOneOperand=true) |
static unsigned | getParallelismForDeviceType (acc::RoutineOp op, acc::DeviceType dtype) |
static ParseResult | parseBindName (OpAsmParser &parser, mlir::ArrayAttr &bindName, mlir::ArrayAttr &deviceTypes) |
static void | printBindName (mlir::OpAsmPrinter &p, mlir::Operation *op, std::optional< mlir::ArrayAttr > bindName, std::optional< mlir::ArrayAttr > deviceTypes) |
static ParseResult | parseRoutineGangClause (OpAsmParser &parser, mlir::ArrayAttr &gang, mlir::ArrayAttr &gangDim, mlir::ArrayAttr &gangDimDeviceTypes) |
void | printRoutineGangClause (OpAsmPrinter &p, Operation *op, std::optional< mlir::ArrayAttr > gang, std::optional< mlir::ArrayAttr > gangDim, std::optional< mlir::ArrayAttr > gangDimDeviceTypes) |
static ParseResult | parseDeviceTypeArrayAttr (OpAsmParser &parser, mlir::ArrayAttr &deviceTypes) |
static void | printDeviceTypeArrayAttr (mlir::OpAsmPrinter &p, mlir::Operation *op, std::optional< mlir::ArrayAttr > deviceTypes) |
#define GET_ATTRDEF_CLASSES |
Definition at line 3098 of file OpenACC.cpp.
#define GET_ATTRDEF_LIST |
#define GET_OP_CLASSES |
Definition at line 3095 of file OpenACC.cpp.
#define GET_OP_LIST |
#define GET_TYPEDEF_CLASSES |
Definition at line 3101 of file OpenACC.cpp.
#define GET_TYPEDEF_LIST |
|
static |
Check dataOperands for acc.parallel, acc.serial and acc.kernels.
Definition at line 909 of file OpenACC.cpp.
References mlir::OpState::emitError().
|
static |
Definition at line 2598 of file OpenACC.cpp.
References mlir::OpState::emitError(), mlir::emitError(), mlir::acc::getDataClause(), mlir::acc::getDeclareAttrName(), mlir::acc::getImplicitFlag(), mlir::OpState::getLoc(), and mlir::acc::getVar().
LogicalResult checkDeviceTypes | ( | mlir::ArrayAttr | deviceTypes | ) |
Check for duplicates in the DeviceType array attribute.
Definition at line 2043 of file OpenACC.cpp.
|
static |
Definition at line 924 of file OpenACC.cpp.
References mlir::Operation::emitOpError(), and mlir::Value::getType().
|
static |
Definition at line 253 of file OpenACC.cpp.
References mlir::OpState::emitError().
|
static |
Definition at line 228 of file OpenACC.cpp.
References mlir::OpState::emitError().
|
static |
Definition at line 207 of file OpenACC.cpp.
References mlir::OpState::emitError(), and hasDeviceType().
|
static |
Definition at line 142 of file OpenACC.cpp.
Referenced by getValueInDeviceTypeSegment(), getValuesFromSegments(), getWaitDevnumValue(), and getWaitValuesWithoutDevnum().
|
static |
Definition at line 2680 of file OpenACC.cpp.
|
static |
Definition at line 1062 of file OpenACC.cpp.
References findSegment().
|
static |
Definition at line 155 of file OpenACC.cpp.
References findSegment().
Referenced by getWaitDevnumValue(), and getWaitValuesWithoutDevnum().
|
static |
Definition at line 171 of file OpenACC.cpp.
References findSegment(), getValuesFromSegments(), and hasDeviceTypeValues().
|
static |
Definition at line 187 of file OpenACC.cpp.
References findSegment(), and getValuesFromSegments().
|
static |
Definition at line 117 of file OpenACC.cpp.
References hasDeviceTypeValues().
Referenced by checkWaitAndAsyncConflict().
|
static |
Definition at line 111 of file OpenACC.cpp.
Referenced by getWaitDevnumValue(), hasDeviceType(), hasOnlyDeviceTypeNone(), printDeviceTypeArrayAttr(), printDeviceTypeOperands(), printDeviceTypeOperandsWithKeywordOnly(), printDeviceTypes(), printGangClause(), printRoutineGangClause(), and printWaitClause().
bool hasDuplicateDeviceTypes | ( | std::optional< mlir::ArrayAttr > | segments, |
llvm::SmallSet< mlir::acc::DeviceType, 3 > & | deviceTypes | ||
) |
Definition at line 2029 of file OpenACC.cpp.
|
static |
Definition at line 1387 of file OpenACC.cpp.
References hasDeviceTypeValues(), and None.
Referenced by printDeviceTypeOperandsWithKeywordOnly(), printGangClause(), and printWaitClause().
|
static |
Definition at line 692 of file OpenACC.cpp.
|
static |
|
static |
Definition at line 2713 of file OpenACC.cpp.
References mlir::AsmParser::parseCommaSeparatedList().
|
static |
Definition at line 1552 of file OpenACC.cpp.
References mlir::AsmParser::emitError(), mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::getCurrentLocation(), mlir::AsmParser::parseLParen(), mlir::AsmParser::parseOptionalKeyword(), and mlir::AsmParser::parseRParen().
|
static |
Definition at line 2840 of file OpenACC.cpp.
References mlir::get(), mlir::AsmParser::getContext(), None, mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRParen(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 1432 of file OpenACC.cpp.
References mlir::AsmParser::parseCommaSeparatedList().
|
static |
Definition at line 1470 of file OpenACC.cpp.
References mlir::get(), mlir::AsmParser::getContext(), None, mlir::AsmParser::parseComma(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseOptionalLSquare(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 1240 of file OpenACC.cpp.
References mlir::detail::DenseArrayAttrImpl< int32_t >::get(), mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::None, None, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseLBrace(), mlir::AsmParser::parseOptionalComma(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRBrace(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 1857 of file OpenACC.cpp.
References mlir::AsmParser::emitError(), mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::getCurrentLocation(), None, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseCommaSeparatedList(), parseGangValue(), mlir::AsmParser::parseLBrace(), mlir::AsmParser::parseOptionalComma(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRBrace(), mlir::AsmParser::parseRParen(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 1838 of file OpenACC.cpp.
References mlir::AsmParser::parseColonType(), mlir::AsmParser::parseEqual(), mlir::OpAsmParser::parseOperand(), and mlir::AsmParser::parseOptionalKeyword().
Referenced by parseGangClause().
ParseResult parseLoopControl | ( | OpAsmParser & | parser, |
Region & | region, | ||
SmallVectorImpl< OpAsmParser::UnresolvedOperand > & | lowerbound, | ||
SmallVectorImpl< Type > & | lowerboundType, | ||
SmallVectorImpl< OpAsmParser::UnresolvedOperand > & | upperbound, | ||
SmallVectorImpl< Type > & | upperboundType, | ||
SmallVectorImpl< OpAsmParser::UnresolvedOperand > & | step, | ||
SmallVectorImpl< Type > & | stepType | ||
) |
loop-control ::= control
(
ssa-id-and-type-list )
=
(
ssa-id-and-type-list )
to
(
ssa-id-and-type-list )
step
(
ssa-id-and-type-list )
region
Definition at line 2314 of file OpenACC.cpp.
References None, mlir::OpAsmParser::parseArgumentList(), mlir::AsmParser::parseColonTypeList(), mlir::AsmParser::parseEqual(), mlir::AsmParser::parseKeyword(), mlir::AsmParser::parseLParen(), mlir::OpAsmParser::parseOperandList(), mlir::AsmParser::parseOptionalKeyword(), mlir::OpAsmParser::parseRegion(), and mlir::AsmParser::parseRParen().
|
static |
Definition at line 1173 of file OpenACC.cpp.
References mlir::detail::DenseArrayAttrImpl< int32_t >::get(), mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::None, None, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseLBrace(), mlir::AsmParser::parseOptionalComma(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRBrace(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 678 of file OpenACC.cpp.
|
static |
Definition at line 2749 of file OpenACC.cpp.
References mlir::get(), mlir::AsmParser::getContext(), None, mlir::AsmParser::parseComma(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseOptionalLSquare(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 873 of file OpenACC.cpp.
References mlir::get(), mlir::AsmParser::getContext(), and mlir::AsmParser::parseCommaSeparatedList().
|
static |
Definition at line 260 of file OpenACC.cpp.
References mlir::AsmParser::parseKeyword(), mlir::AsmParser::parseLParen(), mlir::OpAsmParser::parseOperand(), and mlir::AsmParser::parseOptionalKeyword().
|
static |
Definition at line 318 of file OpenACC.cpp.
References mlir::get(), getElementType(), mlir::AsmParser::parseLParen(), mlir::AsmParser::parseOptionalKeyword(), mlir::AsmParser::parseRParen(), and mlir::AsmParser::parseType().
|
static |
Definition at line 1303 of file OpenACC.cpp.
References mlir::detail::DenseArrayAttrImpl< int32_t >::get(), mlir::BoolAttr::get(), mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::None, None, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseColon(), mlir::AsmParser::parseComma(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseLBrace(), mlir::AsmParser::parseOptionalComma(), mlir::AsmParser::parseOptionalKeyword(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseRBrace(), mlir::AsmParser::parseRParen(), and mlir::AsmParser::parseRSquare().
|
static |
Definition at line 306 of file OpenACC.cpp.
References mlir::Value::getType(), mlir::OpAsmPrinter::printOperand(), and mlir::AsmPrinter::printType().
|
static |
Definition at line 2739 of file OpenACC.cpp.
References printSingleDeviceType().
|
static |
Definition at line 1578 of file OpenACC.cpp.
|
static |
Definition at line 2867 of file OpenACC.cpp.
References hasDeviceTypeValues(), and None.
|
static |
Definition at line 1459 of file OpenACC.cpp.
References hasDeviceTypeValues(), and printSingleDeviceType().
Referenced by printDeviceTypeOperandsWithKeywordOnly().
|
static |
Definition at line 1532 of file OpenACC.cpp.
References hasDeviceTypeValues(), hasOnlyDeviceTypeNone(), printDeviceTypeOperands(), and printDeviceTypes().
|
static |
Definition at line 1286 of file OpenACC.cpp.
References mlir::detail::enumerate(), and printSingleDeviceType().
|
static |
Definition at line 131 of file OpenACC.cpp.
References hasDeviceTypeValues().
Referenced by printDeviceTypeOperandsWithKeywordOnly(), printGangClause(), printRoutineGangClause(), and printWaitClause().
void printGangClause | ( | OpAsmPrinter & | p, |
Operation * | op, | ||
mlir::OperandRange | operands, | ||
mlir::TypeRange | types, | ||
std::optional< mlir::ArrayAttr > | gangArgTypes, | ||
std::optional< mlir::ArrayAttr > | deviceTypes, | ||
std::optional< mlir::DenseI32ArrayAttr > | segments, | ||
std::optional< mlir::ArrayAttr > | gangOnlyDeviceTypes | ||
) |
Definition at line 1984 of file OpenACC.cpp.
References mlir::detail::enumerate(), hasDeviceTypeValues(), hasOnlyDeviceTypeNone(), printDeviceTypes(), and printSingleDeviceType().
void printLoopControl | ( | OpAsmPrinter & | p, |
Operation * | op, | ||
Region & | region, | ||
ValueRange | lowerbound, | ||
TypeRange | lowerboundType, | ||
ValueRange | upperbound, | ||
TypeRange | upperboundType, | ||
ValueRange | steps, | ||
TypeRange | stepType | ||
) |
Definition at line 2345 of file OpenACC.cpp.
References mlir::Region::front(), mlir::Block::getArguments(), mlir::Value::getType(), and mlir::OpAsmPrinter::printRegion().
|
static |
Definition at line 1223 of file OpenACC.cpp.
References mlir::detail::enumerate(), and printSingleDeviceType().
void printRoutineGangClause | ( | OpAsmPrinter & | p, |
Operation * | op, | ||
std::optional< mlir::ArrayAttr > | gang, | ||
std::optional< mlir::ArrayAttr > | gangDim, | ||
std::optional< mlir::ArrayAttr > | gangDimDeviceTypes | ||
) |
Definition at line 2810 of file OpenACC.cpp.
References hasDeviceTypeValues(), None, printDeviceTypes(), and printSingleDeviceType().
|
static |
Definition at line 1217 of file OpenACC.cpp.
References None.
Referenced by printBindName(), printDeviceTypeOperands(), printDeviceTypeOperandsWithSegment(), printGangClause(), printNumGangs(), printRoutineGangClause(), and printWaitClause().
|
static |
Definition at line 893 of file OpenACC.cpp.
|
static |
Definition at line 275 of file OpenACC.cpp.
References mlir::Value::getType(), and mlir::OpAsmPrinter::printOperand().
|
static |
Definition at line 347 of file OpenACC.cpp.
References mlir::AsmPrinter::printType().
|
static |
Definition at line 1398 of file OpenACC.cpp.
References mlir::detail::enumerate(), hasDeviceTypeValues(), hasOnlyDeviceTypeNone(), printDeviceTypes(), and printSingleDeviceType().
|
static |
Definition at line 990 of file OpenACC.cpp.
References mlir::detail::DenseArrayAttrImpl< T >::asArrayRef(), and mlir::OpState::emitOpError().
|
static |
Definition at line 980 of file OpenACC.cpp.
References mlir::OpState::emitOpError().
|
static |
Definition at line 768 of file OpenACC.cpp.
References mlir::Operation::emitOpError(), mlir::Region::empty(), mlir::Region::front(), mlir::Block::getArgument(), mlir::Block::getNumArguments(), mlir::Region::getOps(), mlir::Value::getType(), and verifyYield().