|
MLIR
22.0.0git
|
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"#include "mlir/Dialect/LLVMIR/LLVMTypes.h"#include "mlir/IR/Attributes.h"#include "mlir/IR/Builders.h"#include "mlir/IR/BuiltinOps.h"#include "mlir/IR/BuiltinTypes.h"#include "mlir/IR/DialectImplementation.h"#include "mlir/IR/MLIRContext.h"#include "mlir/IR/Matchers.h"#include "mlir/Interfaces/FunctionImplementation.h"#include "mlir/Transforms/InliningUtils.h"#include "llvm/ADT/APFloat.h"#include "llvm/ADT/TypeSwitch.h"#include "llvm/IR/DataLayout.h"#include "llvm/Support/Error.h"#include "LLVMDialectBytecode.h"#include <numeric>#include <optional>#include "mlir/Dialect/LLVMIR/LLVMOpsDialect.cpp.inc"#include "mlir/Dialect/LLVMIR/LLVMOps.cpp.inc"#include "mlir/Dialect/LLVMIR/LLVMIntrinsicOps.cpp.inc"Go to the source code of this file.
Macros | |
| #define | REGISTER_ENUM_TYPE(Ty) |
| #define | GET_OP_LIST |
| #define | GET_OP_LIST |
| #define | GET_OP_CLASSES |
| #define | GET_OP_CLASSES |
Functions | |
| static auto | processFMFAttr (ArrayRef< NamedAttribute > attrs) |
| static LogicalResult | verifySymbolAttrUse (FlatSymbolRefAttr symbol, Operation *op, SymbolTableCollection &symbolTable) |
Verifies symbol's use in op to ensure the symbol is a valid and fully defined llvm.func. More... | |
| static Type | getI1SameShape (Type type) |
Returns a boolean type that has the same shape as type. More... | |
| static int | parseOptionalKeywordAlternative (OpAsmParser &parser, ArrayRef< StringRef > keywords) |
| template<typename EnumTy , typename RetTy = EnumTy> | |
| static RetTy | parseOptionalLLVMKeyword (OpAsmParser &parser, EnumTy defaultValue) |
| Parse an enum from the keyword, or default to the provided default value. More... | |
| static void | printLLVMLinkage (OpAsmPrinter &p, Operation *, LinkageAttr val) |
| static ParseResult | parseLLVMLinkage (OpAsmParser &p, LinkageAttr &val) |
| static ArrayAttr | getLLVMAlignParamForCompressExpand (OpBuilder &builder, bool isExpandLoad, uint64_t alignment=1) |
| static void | printOneOpBundle (OpAsmPrinter &p, OperandRange operands, TypeRange operandTypes, StringRef tag) |
| static void | printOpBundles (OpAsmPrinter &p, Operation *op, OperandRangeRange opBundleOperands, TypeRangeRange opBundleOperandTypes, std::optional< ArrayAttr > opBundleTags) |
| static ParseResult | parseOneOpBundle (OpAsmParser &p, SmallVector< SmallVector< OpAsmParser::UnresolvedOperand >> &opBundleOperands, SmallVector< SmallVector< Type >> &opBundleOperandTypes, SmallVector< Attribute > &opBundleTags) |
| static std::optional< ParseResult > | parseOpBundles (OpAsmParser &p, SmallVector< SmallVector< OpAsmParser::UnresolvedOperand >> &opBundleOperands, SmallVector< SmallVector< Type >> &opBundleOperandTypes, ArrayAttr &opBundleTags) |
| template<typename CmpPredicateType > | |
| static ParseResult | parseCmpOp (OpAsmParser &parser, OperationState &result) |
| static Attribute | getBoolAttribute (Type type, MLIRContext *ctx, bool value) |
| Returns a scalar or vector boolean attribute of the given type. More... | |
| static ParseResult | parseSwitchOpCases (OpAsmParser &parser, Type flagType, DenseIntElementsAttr &caseValues, SmallVectorImpl< Block * > &caseDestinations, SmallVectorImpl< SmallVector< OpAsmParser::UnresolvedOperand >> &caseOperands, SmallVectorImpl< SmallVector< Type >> &caseOperandTypes) |
<cases> ::= [ (case (, case )* )? ] <case> ::= integer : bb-id (( ssa-use-and-type-list ))? More... | |
| static void | printSwitchOpCases (OpAsmPrinter &p, SwitchOp op, Type flagType, DenseIntElementsAttr caseValues, SuccessorRange caseDestinations, OperandRangeRange caseOperands, const TypeRangeRange &caseOperandTypes) |
| static Type | extractVectorElementType (Type type) |
| Returns the elemental type of any LLVM-compatible vector type or self. More... | |
| static void | destructureIndices (Type currType, ArrayRef< GEPArg > indices, SmallVectorImpl< int32_t > &rawConstantIndices, SmallVectorImpl< Value > &dynamicIndices) |
| Destructures the 'indices' parameter into 'rawConstantIndices' and 'dynamicIndices', encoding the former in the process. More... | |
| static ParseResult | parseGEPIndices (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &indices, DenseI32ArrayAttr &rawConstantIndices) |
| static void | printGEPIndices (OpAsmPrinter &printer, LLVM::GEPOp gepOp, OperandRange indices, DenseI32ArrayAttr rawConstantIndices) |
| static LogicalResult | verifyStructIndices (Type baseGEPType, unsigned indexPos, GEPIndicesAdaptor< ValueRange > indices, function_ref< InFlightDiagnostic()> emitOpError) |
For the given indices, check if they comply with baseGEPType, especially check against LLVMStructTypes nested within. More... | |
| static LogicalResult | verifyStructIndices (Type baseGEPType, GEPIndicesAdaptor< ValueRange > indices, function_ref< InFlightDiagnostic()> emitOpError) |
Driver function around verifyStructIndices. More... | |
| template<typename OpTy > | |
| static LogicalResult | verifyAtomicMemOp (OpTy memOp, Type valueType, ArrayRef< AtomicOrdering > unsupportedOrderings) |
| Verifies the attributes and the type of atomic memory access operations. More... | |
| static SmallVector< Type, 1 > | getCallOpResultTypes (LLVMFunctionType calleeType) |
| Gets the MLIR Op-like result types of a LLVMFunctionType. More... | |
| static TypeAttr | getCallOpVarCalleeType (LLVMFunctionType calleeType) |
| Gets the variadic callee type for a LLVMFunctionType. More... | |
| static LLVMFunctionType | getLLVMFuncType (MLIRContext *context, TypeRange results, ValueRange args) |
Constructs a LLVMFunctionType from MLIR results and args. More... | |
| static LogicalResult | verifyCallOpDebugInfo (CallOp callOp, LLVMFuncOp callee) |
| Verify that an inlinable callsite of a debug-info-bearing function in a debug-info-bearing function has a debug location attached to it. More... | |
| template<typename OpTy > | |
| static LogicalResult | verifyCallOpVarCalleeType (OpTy callOp) |
Verify that the parameter and return types of the variadic callee type match the callOp argument and result types. More... | |
| template<typename OpType > | |
| static LogicalResult | verifyOperandBundles (OpType &op) |
| static ParseResult | parseCallTypeAndResolveOperands (OpAsmParser &parser, OperationState &result, bool isDirect, ArrayRef< OpAsmParser::UnresolvedOperand > operands, SmallVectorImpl< DictionaryAttr > &argAttrs, SmallVectorImpl< DictionaryAttr > &resultAttrs) |
| Parses the type of a call operation and resolves the operands if the parsing succeeds. More... | |
| static ParseResult | parseOptionalCallFuncPtr (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &operands) |
| Parses an optional function pointer operand before the call argument list for indirect calls, or stops parsing at the function identifier otherwise. More... | |
| static ParseResult | resolveOpBundleOperands (OpAsmParser &parser, SMLoc loc, OperationState &state, ArrayRef< SmallVector< OpAsmParser::UnresolvedOperand >> opBundleOperands, ArrayRef< SmallVector< Type >> opBundleOperandTypes, StringAttr opBundleSizesAttrName) |
| static Type | getInsertExtractValueElementType (function_ref< InFlightDiagnostic(StringRef)> emitError, Type containerType, ArrayRef< int64_t > position) |
Extract the type at position in the LLVM IR aggregate type containerType. More... | |
| static Type | getInsertExtractValueElementType (Type llvmType, ArrayRef< int64_t > position) |
Extract the type at position in the wrapped LLVM IR aggregate type containerType. More... | |
| static ParseResult | parseInsertExtractValueElementType (AsmParser &parser, Type &valueType, Type containerType, DenseI64ArrayAttr position) |
| Infer the value type from the container type and position. More... | |
| static void | printInsertExtractValueElementType (AsmPrinter &printer, Operation *op, Type valueType, Type containerType, DenseI64ArrayAttr position) |
| Nothing to print for an inferred type. More... | |
| template<typename OpType > | |
| static void | printCommonGlobalAndAlias (OpAsmPrinter &p, OpType op) |
| static LogicalResult | verifyComdat (Operation *op, std::optional< SymbolRefAttr > attr) |
| static LogicalResult | verifyBlockTags (LLVMFuncOp funcOp) |
| template<typename OpType > | |
| static ParseResult | parseCommonGlobalAndAlias (OpAsmParser &parser, OperationState &result) |
| Parse common attributes that might show up in the same order in both GlobalOp and AliasOp. More... | |
| static bool | isZeroAttribute (Attribute value) |
| static LogicalResult | checkGlobalXtorData (Operation *op, ArrayAttr data) |
| static ParseResult | parseShuffleType (AsmParser &parser, Type v1Type, Type &resType, DenseI32ArrayAttr mask) |
| Build the result type of a shuffle vector operation. More... | |
| static void | printShuffleType (AsmPrinter &printer, Operation *op, Type v1Type, Type resType, DenseI32ArrayAttr mask) |
| Nothing to do when the result type is inferred. More... | |
| static Type | buildLLVMFunctionType (OpAsmParser &parser, SMLoc loc, ArrayRef< Type > inputs, ArrayRef< Type > outputs, function_interface_impl::VariadicFlag variadicFlag) |
| static int64_t | getNumElements (Type t) |
| Compute the total number of elements in the given type, also taking into account nested types. More... | |
| static Type | getElementType (Type type) |
Determine the element type of type. More... | |
| static bool | hasScalableVectorType (Type t) |
| Check if the given type is a scalable vector type or a vector/array type that contains a nested scalable vector type. More... | |
| static LogicalResult | verifyStructArrayConstant (LLVM::ConstantOp op, LLVM::LLVMArrayType arrayType, ArrayAttr arrayAttr, int dim) |
Verifies the constant array represented by arrayAttr matches the provided arrayType. More... | |
| static LLVMStructType | getValAndBoolStructType (Type valType) |
| Returns an LLVM struct type that contains a value type and a boolean type. More... | |
| template<class ExtOp > | |
| static LogicalResult | verifyExtOp (ExtOp op) |
| Verifies that the given extension operation operates on consistent scalars or vectors, and that the target width is larger than the input width. More... | |
| template<typename T > | |
| static OpFoldResult | foldChainableCast (T castOp, typename T::FoldAdaptor adaptor) |
| Folds a cast op that can be chained. More... | |
| static ParseResult | parseIndirectBrOpSucessors (OpAsmParser &parser, Type &flagType, SmallVectorImpl< Block * > &succOperandBlocks, SmallVectorImpl< SmallVector< OpAsmParser::UnresolvedOperand >> &succOperands, SmallVectorImpl< SmallVector< Type >> &succOperandsTypes) |
| static void | printIndirectBrOpSucessors (OpAsmPrinter &p, IndirectBrOp op, Type flagType, SuccessorRange succs, OperandRangeRange succOperands, const TypeRangeRange &succOperandsTypes) |
Variables | |
| static constexpr const char | kElemTypeAttrName [] = "elem_type" |
| #define GET_OP_CLASSES |
Definition at line 4262 of file LLVMDialect.cpp.
| #define GET_OP_CLASSES |
Definition at line 4262 of file LLVMDialect.cpp.
| #define GET_OP_LIST |
| #define GET_OP_LIST |
| #define REGISTER_ENUM_TYPE | ( | Ty | ) |
Definition at line 105 of file LLVMDialect.cpp.
|
static |
Definition at line 2898 of file LLVMDialect.cpp.
References mlir::AsmParser::emitError(), mlir::get(), mlir::AsmParser::getBuilder(), mlir::Builder::getContext(), mlir::LLVM::isCompatibleType(), and mlir::function_interface_impl::VariadicFlag::isVariadic().
|
static |
Definition at line 2538 of file LLVMDialect.cpp.
References mlir::Operation::emitError().
|
static |
Destructures the 'indices' parameter into 'rawConstantIndices' and 'dynamicIndices', encoding the former in the process.
In the process, dynamic indices which are used to index into a structure type are converted to constant indices when possible. To do this, the GEPs element type should be passed as first parameter.
Definition at line 662 of file LLVMDialect.cpp.
References mlir::LLVM::kGEPConstantBitWidth, mlir::m_ConstantInt(), and mlir::matchPattern().
Returns the elemental type of any LLVM-compatible vector type or self.
Definition at line 651 of file LLVMDialect.cpp.
|
static |
Folds a cast op that can be chained.
Definition at line 3654 of file LLVMDialect.cpp.
|
static |
Returns a scalar or vector boolean attribute of the given type.
Definition at line 350 of file LLVMDialect.cpp.
References mlir::BoolAttr::get(), and mlir::DenseElementsAttr::get().
|
static |
Gets the MLIR Op-like result types of a LLVMFunctionType.
Definition at line 957 of file LLVMDialect.cpp.
|
static |
Gets the variadic callee type for a LLVMFunctionType.
Definition at line 966 of file LLVMDialect.cpp.
References mlir::get().
Determine the element type of type.
Supported types are VectorType, TensorType, and LLVMArrayType. Everything else is treated as a scalar.
Definition at line 3241 of file LLVMDialect.cpp.
Referenced by mlir::BaseMemRefType::clonePtrWith(), mlir::convertMMAToLLVMType(), mlir::detail::DenseArrayAttrImpl< T >::get(), mlir::sparse_tensor::SparseTensorType::getCOOType(), TransposeOpLowering::matchAndRewrite(), mlirComplexTypeGetElementType(), mlirLLVMArrayTypeGetElementType(), mlirPDLRangeTypeGetElementType(), mlirShapedTypeGetElementType(), nonAtomicRMW(), parseShuffleType(), and parseVarPtrType().
Returns a boolean type that has the same shape as type.
It supports both fixed size vectors as well as scalable vectors.
Definition at line 82 of file LLVMDialect.cpp.
References mlir::get(), mlir::Type::getContext(), mlir::LLVM::getVectorNumElements(), mlir::LLVM::getVectorType(), and mlir::LLVM::isCompatibleVectorType().
Referenced by parseCmpOp().
|
static |
Extract the type at position in the LLVM IR aggregate type containerType.
Each element of position is an index into a nested aggregate type. Return the resulting type or emit an error.
Definition at line 1855 of file LLVMDialect.cpp.
References mlir::emitError(), and mlir::LLVM::isCompatibleType().
Referenced by parseInsertExtractValueElementType().
Extract the type at position in the wrapped LLVM IR aggregate type containerType.
Definition at line 1892 of file LLVMDialect.cpp.
|
static |
Definition at line 146 of file LLVMDialect.cpp.
References mlir::Builder::getArrayAttr(), mlir::Builder::getDictionaryAttr(), mlir::Builder::getI64IntegerAttr(), and mlir::Builder::getNamedAttr().
|
static |
Constructs a LLVMFunctionType from MLIR results and args.
Definition at line 971 of file LLVMDialect.cpp.
References mlir::get(), and mlir::ValueRange::getTypes().
|
static |
Compute the total number of elements in the given type, also taking into account nested types.
Supported types are VectorType and LLVMArrayType. Everything else is treated as a scalar.
Definition at line 3227 of file LLVMDialect.cpp.
Referenced by mlir::LLVM::detail::extractNDVectorTypeInfo(), hasAtMostSingleNonScalar(), mlir::affine::AffineDmaStartOp::print(), and mlir::affine::AffineDmaWaitOp::print().
|
static |
Returns an LLVM struct type that contains a value type and a boolean type.
Definition at line 3535 of file LLVMDialect.cpp.
References mlir::get(), and mlir::Type::getContext().
|
static |
Check if the given type is a scalable vector type or a vector/array type that contains a nested scalable vector type.
Definition at line 3253 of file LLVMDialect.cpp.
|
static |
Definition at line 2433 of file LLVMDialect.cpp.
|
static |
Parses the type of a call operation and resolves the operands if the parsing succeeds.
Returns failure otherwise.
Definition at line 1329 of file LLVMDialect.cpp.
References mlir::OperationState::addTypes(), mlir::AsmParser::emitError(), mlir::AsmParser::getCurrentLocation(), mlir::AsmParser::getNameLoc(), mlir::OperationState::operands, mlir::AsmParser::parseColon(), mlir::call_interface_impl::parseFunctionSignature(), mlir::AsmParser::parseOptionalComma(), mlir::AsmParser::parseType(), and mlir::OpAsmParser::resolveOperands().
|
static |
Definition at line 294 of file LLVMDialect.cpp.
References mlir::OperationState::addTypes(), mlir::OperationState::attributes, mlir::AsmParser::emitError(), mlir::AsmParser::getBuilder(), mlir::AsmParser::getCurrentLocation(), getI1SameShape(), mlir::Builder::getI64IntegerAttr(), mlir::LLVM::isCompatibleType(), mlir::OperationState::operands, mlir::AsmParser::parseAttribute(), mlir::AsmParser::parseColon(), mlir::AsmParser::parseComma(), mlir::OpAsmParser::parseOperand(), mlir::AsmParser::parseOptionalAttrDict(), mlir::AsmParser::parseType(), mlir::OpAsmParser::resolveOperand(), and mlir::NamedAttrList::set().
|
static |
Parse common attributes that might show up in the same order in both GlobalOp and AliasOp.
Definition at line 2333 of file LLVMDialect.cpp.
References mlir::OperationState::addAttribute(), mlir::get(), mlir::AsmParser::getBuilder(), mlir::AsmParser::getContext(), mlir::Builder::getI64IntegerAttr(), mlir::Builder::getUnitAttr(), mlir::OperationState::name, None, and mlir::AsmParser::parseOptionalKeyword().
|
static |
Definition at line 733 of file LLVMDialect.cpp.
References mlir::sparse_tensor::constantIndex(), mlir::remark::failed(), mlir::detail::DenseArrayAttrImpl< int32_t >::get(), mlir::AsmParser::getContext(), mlir::OptionalParseResult::has_value(), mlir::AsmParser::parseCommaSeparatedList(), mlir::OpAsmParser::parseOperand(), mlir::AsmParser::parseOptionalInteger(), and mlir::OptionalParseResult::value().
|
static |
Definition at line 4055 of file LLVMDialect.cpp.
References mlir::remark::failed(), mlir::AsmParser::parseCommaSeparatedList(), and mlir::AsmParser::Square.
|
static |
Infer the value type from the container type and position.
Definition at line 2013 of file LLVMDialect.cpp.
References mlir::detail::DenseArrayAttrImpl< T >::asArrayRef(), mlir::AsmParser::emitError(), mlir::AsmParser::getCurrentLocation(), and getInsertExtractValueElementType().
|
static |
Definition at line 139 of file LLVMDialect.cpp.
References mlir::get(), and mlir::AsmParser::getContext().
|
static |
Definition at line 215 of file LLVMDialect.cpp.
References mlir::AsmParser::emitError(), mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::getCurrentLocation(), mlir::AsmParser::parseColon(), mlir::AsmParser::parseLParen(), mlir::OpAsmParser::parseOperandList(), mlir::AsmParser::parseOptionalRParen(), mlir::AsmParser::parseRParen(), mlir::AsmParser::parseString(), and mlir::AsmParser::parseTypeList().
Referenced by parseOpBundles().
|
static |
Definition at line 244 of file LLVMDialect.cpp.
References mlir::get(), mlir::AsmParser::getContext(), mlir::AsmParser::parseCommaSeparatedList(), parseOneOpBundle(), mlir::AsmParser::parseOptionalLSquare(), mlir::AsmParser::parseOptionalRSquare(), and mlir::AsmParser::parseRSquare().
|
static |
Parses an optional function pointer operand before the call argument list for indirect calls, or stops parsing at the function identifier otherwise.
Definition at line 1380 of file LLVMDialect.cpp.
References mlir::remark::failed(), mlir::OptionalParseResult::has_value(), and mlir::OpAsmParser::parseOptionalOperand().
|
static |
Definition at line 92 of file LLVMDialect.cpp.
References mlir::detail::enumerate(), and mlir::AsmParser::parseOptionalKeyword().
Referenced by parseOptionalLLVMKeyword().
|
static |
Parse an enum from the keyword, or default to the provided default value.
The return type is the enum type by default, unless overridden with the second template argument.
Definition at line 123 of file LLVMDialect.cpp.
References parseOptionalKeywordAlternative(), and mlir::tblgen::stringify().
|
static |
Build the result type of a shuffle vector operation.
Definition at line 2807 of file LLVMDialect.cpp.
References mlir::AsmParser::emitError(), mlir::AsmParser::getCurrentLocation(), getElementType(), mlir::LLVM::getVectorType(), mlir::LLVM::isCompatibleVectorType(), and mlir::LLVM::isScalableVectorType().
|
static |
<cases> ::= [ (case (, case )* )? ] <case> ::= integer : bb-id (( ssa-use-and-type-list ))?
Definition at line 549 of file LLVMDialect.cpp.
References mlir::remark::failed(), mlir::DenseIntElementsAttr::get(), mlir::get(), mlir::Type::getIntOrFloatBitWidth(), mlir::AsmParser::None, mlir::AsmParser::parseColon(), mlir::AsmParser::parseColonTypeList(), mlir::AsmParser::parseCommaSeparatedList(), mlir::AsmParser::parseInteger(), mlir::AsmParser::parseLSquare(), mlir::OpAsmParser::parseOperandList(), mlir::AsmParser::parseOptionalLParen(), mlir::AsmParser::parseOptionalRSquare(), mlir::AsmParser::parseRParen(), mlir::AsmParser::parseRSquare(), and mlir::OpAsmParser::parseSuccessor().
|
static |
Definition at line 2251 of file LLVMDialect.cpp.
|
static |
Definition at line 760 of file LLVMDialect.cpp.
References mlir::OpAsmPrinter::printOperand().
|
static |
Definition at line 4088 of file LLVMDialect.cpp.
References mlir::OpAsmPrinter::printNewline(), and mlir::OpAsmPrinter::printSuccessorAndUseList().
|
static |
Nothing to print for an inferred type.
Definition at line 2025 of file LLVMDialect.cpp.
|
static |
Definition at line 135 of file LLVMDialect.cpp.
|
static |
Definition at line 182 of file LLVMDialect.cpp.
References mlir::OpAsmPrinter::printOperands(), and mlir::AsmPrinter::printString().
Referenced by printOpBundles().
|
static |
Definition at line 196 of file LLVMDialect.cpp.
References printOneOpBundle().
|
static |
Nothing to do when the result type is inferred.
Definition at line 2819 of file LLVMDialect.cpp.
|
static |
Definition at line 591 of file LLVMDialect.cpp.
References mlir::OpAsmPrinter::printNewline(), and mlir::OpAsmPrinter::printSuccessorAndUseList().
|
static |
Definition at line 51 of file LLVMDialect.cpp.
References mlir::NamedAttribute::getName(), and mlir::NamedAttribute::getValue().
|
static |
Definition at line 1393 of file LLVMDialect.cpp.
|
static |
Verifies the attributes and the type of atomic memory access operations.
Definition at line 874 of file LLVMDialect.cpp.
References mlir::DataLayout::closest(), and mlir::LLVM::isTypeCompatibleWithAtomicOp().
|
static |
Definition at line 2311 of file LLVMDialect.cpp.
References mlir::WalkResult::advance(), and mlir::WalkResult::wasInterrupted().
|
static |
Verify that an inlinable callsite of a debug-info-bearing function in a debug-info-bearing function has a debug location attached to it.
This mirrors an LLVM IR verifier.
Definition at line 1100 of file LLVMDialect.cpp.
|
static |
Verify that the parameter and return types of the variadic callee type match the callOp argument and result types.
Definition at line 1125 of file LLVMDialect.cpp.
|
static |
Definition at line 2299 of file LLVMDialect.cpp.
References mlir::Operation::emitError(), and mlir::SymbolTable::lookupNearestSymbolFrom().
|
static |
Verifies that the given extension operation operates on consistent scalars or vectors, and that the target width is larger than the input width.
Definition at line 3596 of file LLVMDialect.cpp.
References mlir::LLVM::getVectorNumElements(), and mlir::LLVM::isCompatibleVectorType().
|
static |
Definition at line 1163 of file LLVMDialect.cpp.
|
static |
Verifies the constant array represented by arrayAttr matches the provided arrayType.
Definition at line 3266 of file LLVMDialect.cpp.
References mlir::detail::enumerate(), and mlir::remark::failed().
|
static |
Driver function around verifyStructIndices.
Definition at line 816 of file LLVMDialect.cpp.
References verifyStructIndices().
|
static |
For the given indices, check if they comply with baseGEPType, especially check against LLVMStructTypes nested within.
Definition at line 776 of file LLVMDialect.cpp.
References mlir::LLVM::GEPIndicesAdaptor< DynamicRange >::size().
Referenced by verifyStructIndices().
|
static |
Verifies symbol's use in op to ensure the symbol is a valid and fully defined llvm.func.
Definition at line 66 of file LLVMDialect.cpp.
References mlir::Operation::emitOpError(), mlir::FlatSymbolRefAttr::getAttr(), mlir::FlatSymbolRefAttr::getValue(), and mlir::SymbolTableCollection::lookupNearestSymbolFrom().
|
staticconstexpr |
Definition at line 49 of file LLVMDialect.cpp.