MLIR  16.0.0git
Classes | Namespaces | Typedefs | Functions
InterfaceSupport.h File Reference
#include "mlir/Support/TypeID.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/TypeName.h"
+ Include dependency graph for InterfaceSupport.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mlir::detail::Interface< ConcreteType, ValueT, Traits, BaseType, BaseTrait >
 This class represents an abstract interface. More...
 
struct  mlir::detail::Interface< ConcreteType, ValueT, Traits, BaseType, BaseTrait >::Trait< ConcreteT >
 This is a special trait that registers a given interface with an object. More...
 
struct  mlir::detail::count_if_t_impl< Pred, N, Ts >
 Template utility that computes the number of elements within T that satisfy the given predicate. More...
 
struct  mlir::detail::count_if_t_impl< Pred, N, T, Us... >
 
class  mlir::detail::InterfaceMap
 This class provides an efficient mapping between a given Interface type, and a particular implementation of its concept. More...
 
struct  llvm::DenseMapInfo< T, std::enable_if_t< mlir::detail::IsInterface< T >::value > >
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::detail
 
 llvm
 The OpAsmOpInterface, see OpAsmInterface.td for more details.
 

Typedefs

template<template< class > class Pred, typename... Ts>
using mlir::detail::count_if_t = count_if_t_impl< Pred, 0, Ts... >
 
template<typename T >
using mlir::detail::is_interface_t = decltype(isInterfaceImpl(std::declval< T & >()))
 
template<typename T >
using mlir::detail::IsInterface = llvm::is_detected< is_interface_t, T >
 

Functions

template<typename ConcreteType , typename ValueT , typename Traits , typename BaseType , template< typename, template< typename > class > class BaseTrait>
void mlir::detail::isInterfaceImpl (Interface< ConcreteType, ValueT, Traits, BaseType, BaseTrait > &)
 

Variable Documentation

◆ value

constexpr const bool value = true
static

Definition at line 160 of file InterfaceSupport.h.

Referenced by mlir::presburger::IntegerRelation::addBound(), mlir::builtin_dialect_detail::addBytecodeInterface(), mlir::ValueDecomposer::addDecomposeValueConversion(), addExecuteResults(), mlir::transform::TransformState::addExtension(), mlir::tblgen::Constructor::addMemberInitializer(), addMissingLoopIVBounds(), addNamedOpBuilderImpl(), addResumeFunction(), mlir::TypeConverter::addTargetMaterialization(), mlir::OperationState::addTypes(), mlir::AsmParserState::addUses(), mlir::HeapAsmResourceBlob::allocateAndCopy(), mlir::NamedAttrList::append(), mlir::transform::detail::applyTransformToEach(), areAllLLVMTypes(), mlir::AsmPrinter::AsmPrinter(), mlir::detail::ElementsAttrIndexer::at(), mlir::Op< AffineDmaStartOp, OpTrait::MemRefsNormalizable, OpTrait::VariadicOperands, OpTrait::ZeroResults, OpTrait::OpInvariants, AffineMapAccessInterface::Trait >::attachInterface(), mlir::attachPassReproducerAsmResource(), mlir::ParserConfig::attachResourceParser(), mlir::BytecodeWriterConfig::attachResourcePrinter(), broadcast(), broadcastIfNeeded(), mlir::bufferization::BufferPlacementAllocs::BufferPlacementAllocs(), mlir::detail::pdl_function_builder::buildConstraintFn(), buildCostGraph(), buildMinMaxReductionSeq(), buildPredicateList(), mlir::detail::pdl_function_builder::buildRewriteFn(), buildVectorWrite(), canonicalizeMapOrSetAndOperands(), mlir::bufferization::castOrReallocMemRefValue(), mlir::python::PyValue::checkValid(), mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits >::classof(), mlir::FlatAffineValueConstraints::classof(), mlir::tblgen::AttrDef::classof(), mlir::Op< AffineDmaStartOp, OpTrait::MemRefsNormalizable, OpTrait::VariadicOperands, OpTrait::ZeroResults, OpTrait::OpInvariants, AffineMapAccessInterface::Trait >::classof(), mlir::detail::Parser::codeCompleteDialectSymbol(), collapseGenericOpIterationDims(), mlir::spirv::Deserializer::collect(), mlir::FlatAffineRelation::compose(), computeNecessaryMaterializations(), mlir::tosa::condenseValues(), mlir::ConstantIntRanges::constant(), mlir::ConstantIntRanges::ConstantIntRanges(), mlir::GenericProgramPointBase< CFGEdge, std::pair< Block *, Block *> >::construct(), mlir::detail::constructContainerOpForParserIfNecessary(), convertStructType(), mlir::OperationFolder::create(), mlir::RewritePattern::create(), createDeviceFunctionCall(), mlir::python::PyValue::createFromCapsule(), createI32Constant(), createI32ConstantOf(), mlir::createLoopFusionPass(), createReassociationMapsForCollapse(), mlir::LivenessBlockInfo::currentlyLiveValues(), mlir::python::adaptors::pure_subclass::def_classmethod(), mlir::python::adaptors::pure_subclass::def_staticmethod(), mlir::AsmParser::KeywordSwitch< ResultT >::Default(), mlir::spirv::Deserializer::processOp< spirv::FunctionCallOp >(), llvm::cast_convert_val< T, ::mlir::Dialect, ::mlir::Dialect >::doitImpl(), mlir::IROperand< OpOperand, Value >::drop(), dropRefIfNoUses(), eachHasOnlyOneOfTypes(), mlir::BufferViewFlowAnalysis::end(), mlir::LLVM::GEPIndicesAdaptor< DynamicRange >::end(), mlir::eraseUnreachableBlocks(), executeGetOperandsResults(), exp2I32(), extractUIntArray(), mlir::FailureOr< T >::FailureOr(), mlir::presburger::Matrix::fillRow(), mlir::detail::PassCrashReproducerGenerator::finalize(), findDuplicateElement(), findLiveUserOfReplaced(), mlir::tblgen::FmtObject< Tuple >::FmtObject(), foldInsertAfterExtractSlice(), foldMemRefCast(), foldMinMaxOp(), mlir::op_definition_impl::foldTrait(), foldTransferInBoundsAttribute(), mlir::LLVM::ModuleTranslation::forgetMapping(), frexp(), mlir::linalg::generateLibraryCallName(), mlir::SideEffects::Effect::get(), mlir::ThreadLocalCache< llvm::StringMap< llvm::StringMapEntry< llvm::NoneType > *> >::get(), mlir::DenseElementsAttr::get(), mlir::IROperand< OpOperand, Value >::get(), mlir::detail::TypeUniquer::get(), mlir::detail::AttributeUniquer::get(), mlir::spirv::ImageType::get(), mlir::detail::InterfaceMap::get(), mlir::FlatSymbolRefAttr::get(), mlir::python::PyValue::get(), mlir::bufferization::OneShotAnalysisState::getAliasInfo(), mlir::detail::AnalysisMap::getAnalysis(), mlir::Diagnostic::getArguments(), mlir::ComputationSliceState::getAsConstraints(), mlir::PDLValue::getAsOpaquePointer(), mlir::getAsValues(), mlir::Builder::getAttr(), getAttributePredicates(), mlir::BlockAndValueMapping::getBlockMap(), mlir::tblgen::InterfaceMethod::getBody(), mlir::bufferization::getBuffer(), getBufferizationOptions(), mlir::tblgen::TypeConstraint::getBuilderCall(), mlir::detail::Parser::getChecked(), getCommonEnclosingRepetitiveRegion(), mlir::tblgen::TypeConstraint::getCPPClassName(), mlir::tblgen::AttrOrTypeParameter::getCppType(), mlir::tblgen::InterfaceMethod::getDefaultImplementation(), mlir::tblgen::Builder::Parameter::getDefaultValue(), mlir::tblgen::InterfaceMethod::getDescription(), mlir::tblgen::Interface::getDescription(), mlir::transform::TransformState::getExtension(), mlir::tblgen::Dialect::getExtraClassDeclaration(), mlir::tblgen::Interface::getExtraClassDeclaration(), mlir::tblgen::AttrOrTypeDef::getExtraDecls(), mlir::tblgen::AttrOrTypeDef::getExtraDefs(), mlir::tblgen::Interface::getExtraSharedClassDeclaration(), mlir::tblgen::Interface::getExtraTraitClassDeclaration(), mlir::getFusionComputeCost(), getGenericEffectsImpl(), mlir::transform::TransformState::getHandleForPayloadOp(), mlir::BytecodeWriterConfig::getImpl(), mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits >::getImpl(), mlir::AsmState::getImpl(), mlir::Builder::getIntegerAttr(), getLastDependentOpInRange(), mlir::dataflow::SparseDataFlowAnalysis< Lattice< ConstantValue > >::getLatticeElement(), getLLVMAtomicOrdering(), getLoadStoreElementType(), mlir::pdll::ast::Node::getLoc(), mlir::ProgramPoint::getLoc(), getLspDiagnoticFromDiag(), mlir::getMemRefSizeInBytes(), mlir::tensor::getMixedSizes(), mlir::presburger::Matrix::getNumReservedColumns(), getOperandTreePredicates(), getOperandValuesImpl(), mlir::Liveness::getOperation(), getOption(), mlir::detail::PassOptions::getOptionWidth(), mlir::SideEffects::EffectInstance< EffectT >::getParameters(), mlir::bufferization::getPartialBufferizationOptions(), mlir::FallbackAsmResourceMap::getPrinters(), mlir::getReachableAffineApplyOps(), getScalarOrVectorI32Constant(), mlir::DenseElementsAttr::getSplatValue(), getTreePredicates(), mlir::ConversionPattern::getTypeConverter(), mlir::InvocationBounds::getUnknown(), mlir::linalg::getUpperBoundForIndex(), mlir::BlockOperand::getUseList(), mlir::dataflow::Lattice< IntegerValueRange >::getValue(), mlir::GenericProgramPointBase< CFGEdge, std::pair< Block *, Block *> >::getValue(), mlir::NamedAttribute::getValue(), mlir::pdll::ast::AttributeExpr::getValue(), llvm::cl::OptionValue< mlir::OpPassManager >::getValue(), mlir::pdll::ast::TypeExpr::getValue(), llvm::cl::OptionValue< PassArgData >::getValue(), mlir::pdll::ast::NamedAttributeDecl::getValue(), mlir::getValueOrCreateCastToIndexLike(), mlir::getValueOrCreateConstantIndexOp(), mlir::tblgen::Interface::getVerify(), mlir::detail::TypeUniquer::getWithTypeID(), mlir::detail::AttributeUniquer::getWithTypeID(), mlir::hasEffect(), mlir::hasSingleEffect(), llvm::cl::OptionValue< mlir::OpPassManager >::hasValue(), mlir::python::PyInferTypeOpInterface::inferReturnTypes(), mlir::detail::StringAttrStorage::initialize(), mlir::detail::PDLByteCode::initializeMutableState(), inlinePayload(), mlir::detail::InterfaceMap::insert(), mlir::RegisteredOperationName::insert(), mlir::RewritePatternSet::insert(), insertCasts(), insertCopies(), mlir::detail::Interface< ConcreteType, Type, Traits, Type, TypeTrait::TraitBase >::Interface(), mlir::detail::AnalysisMap::invalidate(), invertPredicate(), mlir::IROperand< OpOperand, Value >::is(), mlir::AffineExpr::isa(), mlir::PDLValue::isa(), mlir::isConstantIntValue(), isContiguousAccess(), isDefinedByCallTo(), isFillInterfaceImpl(), mlir::detail::analysis_impl::isInvalidated(), isOpReady(), isPermutation(), isSameTypesWithoutEncoding(), isSectionOptional(), isShapePreserving(), legalizeUnresolvedMaterialization(), linalgOpToLoopsImpl(), pybind11::detail::type_caster< MlirAffineMap >::load(), pybind11::detail::MlirDefaultingCaster< mlir::python::DefaultingPyMlirContext >::load(), pybind11::detail::type_caster< MlirAttribute >::load(), pybind11::detail::type_caster< MlirContext >::load(), pybind11::detail::type_caster< MlirDialectRegistry >::load(), pybind11::detail::type_caster< MlirLocation >::load(), pybind11::detail::type_caster< MlirModule >::load(), pybind11::detail::type_caster< MlirOperation >::load(), pybind11::detail::type_caster< MlirValue >::load(), pybind11::detail::type_caster< MlirPassManager >::load(), pybind11::detail::type_caster< MlirType >::load(), logFailure(), mlir::LLVM::LoopOptionsAttrBuilder::LoopOptionsAttrBuilder(), mlir::m_AnyZeroFloat(), mlir::m_NegInfFloat(), mlir::m_NegZeroFloat(), mlir::m_NonZero(), mlir::m_One(), mlir::m_OneFloat(), mlir::m_PosInfFloat(), mlir::m_PosZeroFloat(), mlir::m_Zero(), mlir::BlockAndValueMapping::map(), mlir::DenseElementsAttr::ComplexFloatElementIterator::mapElement(), mlir::LLVM::ModuleTranslation::mapValue(), mlir::detail::constant_float_predicate_matcher::match(), mlir::detail::constant_int_predicate_matcher::match(), mlir::detail::PatternMatcherValue::match(), mlir::math::ErfPolynomialApproximation::matchAndRewrite(), mlir::OpToFuncCallLowering< SourceOp >::matchAndRewrite(), mlir::OpWithOffsetSizesAndStridesConstantArgumentFolder< OpType, ResultTypeFunc, CastOpFunc >::matchAndRewrite(), mlir::VectorConvertToLLVMPattern< SourceOp, TargetOp >::matchAndRewrite(), MaterializePadValue::matchAndRewrite(), ConvertStore::matchAndRewrite(), CanonicalizeContractAdd< AddOpType >::matchAndRewrite(), mlir::detail::matchOperandOrValueAtIndex(), matchSelectReduction(), max(), mlir::tblgen::Constructor::MemberInitializer::MemberInitializer(), mlir::lsp::MessageHandler::MessageHandler(), min(), mlirPythonCapsuleToValue(), mlirValueIsNull(), mlir::moveLoopInvariantCode(), mlir::detail::StorageUserBase< ConcreteT, BaseT, StorageT, UniquerT, Traits >::mutate(), mlir::LLVM::detail::LLVMStructTypeStorage::mutate(), mlir::StorageUniquer::mutate(), mlir::RewriterBase::notifyMatchFailure(), mlir::dataflow::IntegerValueRangeLattice::onUpdate(), mlir::PDLValue::operator bool(), llvm::cl::parser< mlir::OpPassManager >::ParsedPassManager::operator const mlir::OpPassManager &(), mlir::python::PyValue::operator MlirValue(), mlir::detail::PassOptions::ListOption< DataType, OptionParser >::operator*(), mlir::DenseElementsAttr::ComplexIntElementIterator::operator*(), mlir::ThreadLocalCache< llvm::StringMap< llvm::StringMapEntry< llvm::NoneType > *> >::operator->(), mlir::operator<<(), mlir::DiagnosedSilenceableFailure::operator<<(), mlir::tblgen::MethodBody::operator<<(), mlir::Diagnostic::operator<<(), mlir::IROperand< OpOperand, Value >::operator=(), mlir::Pass::Statistic::operator=(), mlir::GenericProgramPointBase< CFGEdge, std::pair< Block *, Block *> >::operator==(), mlir::vector::detail::BitmaskEnumStorage::operator==(), mlir::detail::StringAttrStorage::operator==(), optionallyBroadcast(), optionallyTruncateOrExtend(), mlir::LivenessBlockInfo::out(), outlineExecuteOp(), mlir::outlineSingleBlockRegion(), mlir::parallelForEach(), mlir::FieldParser< AttributeT, std::enable_if_t< std::is_base_of< Attribute, AttributeT >::value, AttributeT > >::parse(), mlir::FieldParser< TypeT, std::enable_if_t< std::is_base_of< Type, TypeT >::value, TypeT > >::parse(), mlir::FieldParser< IntT, std::enable_if_t< std::is_integral< IntT >::value, IntT > >::parse(), mlir::FieldParser< std::string >::parse(), llvm::cl::detail::VectorParserBase< SmallVector< T, N >, T >::parse(), parseAndVerify< unsigned >(), mlir::detail::pass_options::parseCommaSeparatedList(), mlir::AsmParser::parseCustomAttributeWithFallback(), mlir::AsmParser::parseCustomTypeWithFallback(), mlir::detail::Parser::parseDimensionListRanked(), parseElementAttrHexValues(), parseEnumKeywordAttr(), parseEnumStrAttr(), mlir::detail::Parser::parseFloatFromIntegerLiteral(), mlir::detail::PassOptions::parseFromString(), parseImageType(), parseNextArg(), parseOptionalLLVMKeyword(), llvm::cl::parser< mlir::OpPassManager >::parser(), mlir::detail::Parser::parseStridedLayoutAttr(), mlir::detail::Parser::parseVectorDimensionList(), mlir::NamedAttrList::pop_back(), populateDialectSparseTensorSubmodule(), mlir::bufferization::populateDynamicDimSizes(), mlir::bufferization::populateEliminateBufferizeMaterializationsPatterns(), mlir::vector::populateWarpExecuteOnLane0OpToScfForPattern(), mlir::Liveness::print(), mlir::dataflow::Lattice< IntegerValueRange >::print(), mlir::ProgramPoint::print(), llvm::cl::detail::VectorParserBase< SmallVector< T, N >, T >::print(), mlir::PDLValue::print(), print(), printAtomicReductionRegion(), printAwaitResultType(), printConstantOp(), mlir::AsmPrinter::Impl::printIntegerSet(), printLaunchFuncOperands(), printLoopControl(), printOperation(), mlir::detail::pass_options::printOptionValue(), mlir::AsmPrinter::printStrippedAttrOrType(), printSynchronizationHint(), mlir::detail::pdl_function_builder::processArgsAndInvokeConstraint(), mlir::detail::pdl_function_builder::processArgsAndInvokeRewrite(), mlir::detail::pdl_function_builder::ProcessPDLValue< T, std::enable_if_t< std::is_base_of< OpState, T >::value > >::processAsArg(), mlir::detail::pdl_function_builder::processResults(), mlir::ProgramPoint::ProgramPoint(), propagateLiveness(), mlir::DialectBytecodeReader::readSignedVarInts(), mlir::StorageUniquer::registerParametricStorageType(), remainsLegalAfterInline(), mlir::BufferViewFlowAnalysis::remove(), mlir::transform::TransformState::removeExtension(), mlir::replaceAllMemRefUsesWith(), replaceWithConstant(), mlir::OpAsmParser::resolveOperands(), mlir::linalg::rewriteTopLevelForeachThreadToGpuBlocks(), mlir::runRegionDCE(), mlir::spirv::Serializer::processOp< spirv::FunctionCallOp >(), mlir::IROperand< OpOperand, Value >::set(), mlir::NamedAttrList::set(), mlir::Operation::setAttr(), llvm::cl::OptionValue< PassArgData >::setValue(), mlir::ShapedTypeComponents::ShapedTypeComponents(), shiftValue(), shouldPrintElementsAttrWithHex(), simplifyPassThroughBr(), sourceMaterializationCallback(), mlir::Block::splitBlock(), mlir::LLVM::ModuleTranslation::stackPush(), mlir::LLVM::ModuleTranslation::stackWalk(), mlir::PySinglePartStringAccumulator::takeValue(), mlir::scf::tileParallelLoop(), translateDataLayout(), mlir::OpBuilder::tryFold(), mlir::DenseElementsAttr::tryGetValues(), mlir::TypeRange::TypeRange(), unwrapList(), mlir::RewriterBase::updateRootInPlace(), mlir::ResultRange::use_empty(), mlir::tblgen::UsingDeclaration::UsingDeclaration(), validateSupportedControlFlow(), mlir::DenseElementsAttr::value_end(), valueAt(), mlir::ValueRange::ValueRange(), verifyAllocLikeOp(), verifyAtomicCompareExchangeImpl(), verifyConstantType(), mlir::detail::verifyDataLayoutSpec(), mlir::AffineDmaWaitOp::verifyInvariants(), verifyOpaquePtr(), mlir::op_definition_impl::verifyRegionTrait(), verifySynchronizationHint(), mlir::op_definition_impl::verifyTrait(), mlir::op_definition_impl::verifyTraits(), visit(), mlir::AffineExprVisitor< HasAffineDimExprVisitor, bool >::visit(), visitInPrettyBlockOrder(), mlir::dataflow::IntegerRangeAnalysis::visitNonControlFlowArguments(), mlir::dataflow::IntegerRangeAnalysis::visitOperation(), visitUpward(), mlir::detail::walk(), mlir::Block::walk(), mlir::Region::walk(), mlir::AffineExprVisitor< HasAffineDimExprVisitor, bool >::walkPostOrder(), walkReferenceCountedValues(), mlir::python::PySymbolTable::walkSymbolTables(), walkSymbolUses(), mlir::tblgen::UsingDeclaration::writeDeclTo(), writeDialectGrouping(), mlir::tblgen::Constructor::MemberInitializer::writeTo(), and mlir::DialectBytecodeWriter::writeTypes().