MLIR 22.0.0git
InterfaceSupport.h File Reference
#include "mlir/Support/TypeID.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/TypeName.h"

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

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::detail
 AttrTypeReplacer.
namespace  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 > &)