MLIR 24.0.0git
OperationSupport.h File Reference
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BlockSupport.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/DialectRegistry.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/TypeRange.h"
#include "mlir/IR/Types.h"
#include "mlir/IR/Value.h"
#include "mlir/Support/InterfaceSupport.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/PointerLikeTypeTraits.h"
#include "llvm/Support/TrailingObjects.h"
#include <memory>
#include <optional>

Go to the source code of this file.

Classes

class  mlir::PropertyRef
 Type-safe wrapper around a void* for passing properties, including the properties structs of operations, generically through APIs. More...
class  mlir::OperationName
struct  mlir::OperationName::InterfaceConcept
 This class represents a type erased version of an operation. More...
class  mlir::OperationName::Impl
struct  mlir::OperationName::UnregisteredOpModel
 Default implementation for unregistered operations. More...
class  mlir::RegisteredOperationName
 This is a "type erased" representation of a registered operation. More...
struct  mlir::RegisteredOperationName::Model< ConcreteOp >
 Implementation of the InterfaceConcept for operation APIs that forwarded to a concrete op implementation. More...
class  mlir::NamedAttrList
 NamedAttrList is array of NamedAttributes that tracks whether it is sorted and does some basic work to remain sorted. More...
struct  mlir::OperationState
 This represents an operation in an abstracted form, suitable for use with the builder APIs. More...
class  mlir::detail::OperandStorage
 This class handles the management of operation operands. More...
class  mlir::OpPrintingFlags
 Set of flags used to control the behavior of the various IR print methods (e.g. More...
struct  mlir::OperationEquivalence
 This class provides utilities for computing if two operations are equivalent. More...
class  mlir::OperationFingerPrint
 A unique fingerprint for a specific operation, and all of it's internal operations (if includeNested is set). More...
struct  llvm::DenseMapInfo< mlir::OperationName >
struct  llvm::DenseMapInfo< mlir::RegisteredOperationName >
struct  llvm::PointerLikeTypeTraits< mlir::OperationName >
struct  llvm::PointerLikeTypeTraits< mlir::RegisteredOperationName >

Namespaces

namespace  llvm
 The OpAsmOpInterface, see OpAsmInterface.td for more details.
namespace  mlir
 Include the generated interface declarations.
namespace  mlir::detail
 AttrTypeReplacer.
namespace  mlir::impl
 Attribute collections provide a dictionary-like interface.

Functions

void mlir::detail::appendAttributeProperty (llvm::SmallVectorImpl< NamedAttribute > &attrs, StringRef name, Attribute attr)
 Append a present attribute-backed property to a dictionary's attributes.
void mlir::detail::splitPropertiesAndDiscardableAttributes (OperationState &state, ArrayRef< NamedAttribute > attributes, ArrayRef< StringRef > inherentNames, llvm::function_ref< LogicalResult(DictionaryAttr)> setProperties)
 Route legacy builder attributes to either the operation's properties or its discardable attribute dictionary.
template<typename AttrT>
LLVM_ATTRIBUTE_NOINLINE LogicalResult mlir::detail::setAttributeProperty (AttrT &storage, Attribute attr, StringRef name, llvm::function_ref< InFlightDiagnostic()> emitError)
 Assign a generated attribute-backed property after checking its type.
raw_ostream & mlir::operator<< (raw_ostream &os, OperationName info)
llvm::hash_code mlir::hash_value (OperationName arg)
template<typename IteratorT, typename NameT>
std::pair< IteratorT, bool > mlir::impl::findAttrUnsorted (IteratorT first, IteratorT last, NameT name)
 Unsorted string search or identifier lookups are linear scans.
template<typename IteratorT>
std::pair< IteratorT, bool > mlir::impl::findAttrSorted (IteratorT first, IteratorT last, StringRef name)
 Using llvm::lower_bound requires an extra string comparison to check whether the returned iterator points to the found element or whether it indicates the lower bound.
template<typename IteratorT>
std::pair< IteratorT, bool > mlir::impl::findAttrSorted (IteratorT first, IteratorT last, StringAttr name)
 StringAttr lookups on large attribute lists will switch to string binary search.
template<typename IteratorT, typename NameT>
Attribute mlir::impl::getAttrFromSortedRange (IteratorT first, IteratorT last, NameT name)
 Get an attribute from a sorted range of named attributes.
template<typename IteratorT, typename NameT>
std::optional< NamedAttribute > mlir::impl::getNamedAttrFromSortedRange (IteratorT first, IteratorT last, NameT name)
 Get an attribute from a sorted range of named attributes.
 mlir::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
 Enable Bitmask enums for OperationEquivalence::Flags.