MLIR  20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
mlir::LocationAttr Class Reference

Location objects represent source locations information in MLIR. More...

#include "mlir/IR/Location.h"

+ Inheritance diagram for mlir::LocationAttr:

Public Member Functions

WalkResult walk (function_ref< WalkResult(Location)> walkFn)
 Walk all of the locations nested directly under, and including, the current. More...
 
template<typename T >
findInstanceOf ()
 Return an instance of the given location type if one is nested under the current location. More...
 
constexpr Attribute ()=default
 
 Attribute (const ImplType *impl)
 
 Attribute (const Attribute &other)=default
 
- Public Member Functions inherited from mlir::Attribute
constexpr Attribute ()=default
 
 Attribute (const ImplType *impl)
 
 Attribute (const Attribute &other)=default
 
Attributeoperator= (const Attribute &other)=default
 
bool operator== (Attribute other) const
 
bool operator!= (Attribute other) const
 
 operator bool () const
 
bool operator! () const
 
template<typename... Tys>
bool isa () const
 Casting utility functions. More...
 
template<typename... Tys>
bool isa_and_nonnull () const
 
template<typename U >
dyn_cast () const
 
template<typename U >
dyn_cast_or_null () const
 
template<typename U >
cast () const
 
TypeID getTypeID ()
 Return a unique identifier for the concrete attribute type. More...
 
MLIRContextgetContext () const
 Return the context this attribute belongs to. More...
 
DialectgetDialect () const
 Get the dialect this attribute is registered to. More...
 
void print (raw_ostream &os, bool elideType=false) const
 Print the attribute. More...
 
void print (raw_ostream &os, AsmState &state, bool elideType=false) const
 
void dump () const
 
void printStripped (raw_ostream &os) const
 Print the attribute without dialect wrapping. More...
 
void printStripped (raw_ostream &os, AsmState &state) const
 
const void * getAsOpaquePointer () const
 Get an opaque pointer to the attribute. More...
 
template<typename InterfaceT >
bool hasPromiseOrImplementsInterface ()
 Returns true if InterfaceT has been promised by the dialect or implemented. More...
 
template<template< typename T > class Trait>
bool hasTrait ()
 Returns true if the type was registered with a particular trait. More...
 
const AbstractTygetAbstractAttribute () const
 Return the abstract descriptor for this attribute. More...
 
void walkImmediateSubElements (function_ref< void(Attribute)> walkAttrsFn, function_ref< void(Type)> walkTypesFn) const
 Walk all of the immediately nested sub-attributes and sub-types. More...
 
auto replaceImmediateSubElements (ArrayRef< Attribute > replAttrs, ArrayRef< Type > replTypes) const
 Replace the immediately nested sub-attributes and sub-types with those provided. More...
 
template<WalkOrder Order = WalkOrder::PostOrder, typename... WalkFns>
auto walk (WalkFns &&...walkFns)
 Walk this attribute and all attibutes/types nested within using the provided walk functions. More...
 
template<typename... ReplacementFns>
auto replace (ReplacementFns &&...replacementFns)
 Recursively replace all of the nested sub-attributes and sub-types using the provided map functions. More...
 
ImplTypegetImpl () const
 Return the internal Attribute implementation. More...
 

Static Public Member Functions

static bool classof (Attribute attr)
 Methods for support type inquiry through isa, cast, and dyn_cast. More...
 
- Static Public Member Functions inherited from mlir::Attribute
static Attribute getFromOpaquePointer (const void *ptr)
 Construct an attribute from the opaque pointer representation. More...
 

Additional Inherited Members

- Public Types inherited from mlir::Attribute
template<typename ConcreteType , typename BaseType , typename StorageType , template< typename T > class... Traits>
using AttrBase = detail::StorageUserBase< ConcreteType, BaseType, StorageType, detail::AttributeUniquer, Traits... >
 Utility class for implementing attributes. More...
 
using ImplType = AttributeStorage
 
using ValueType = void
 
using AbstractTy = AbstractAttribute
 
- Protected Attributes inherited from mlir::Attribute
ImplTypeimpl {nullptr}
 

Detailed Description

Location objects represent source locations information in MLIR.

LocationAttr acts as the anchor for all Location based attributes.

Definition at line 31 of file Location.h.

Member Function Documentation

◆ Attribute() [1/3]

constexpr mlir::Attribute::Attribute
constexprdefault

◆ Attribute() [2/3]

mlir::Attribute::Attribute
default

◆ Attribute() [3/3]

mlir::Attribute::Attribute
inline

Definition at line 38 of file Attributes.h.

◆ classof()

bool LocationAttr::classof ( Attribute  attr)
static

Methods for support type inquiry through isa, cast, and dyn_cast.

Definition at line 140 of file Location.cpp.

References mlir::Attribute::hasTrait().

◆ findInstanceOf()

template<typename T >
T mlir::LocationAttr::findInstanceOf ( )
inline

Return an instance of the given location type if one is nested under the current location.

Returns nullptr if one could not be found.

Definition at line 44 of file Location.h.

References mlir::WalkResult::advance(), mlir::WalkResult::interrupt(), and walk().

Referenced by addScopeToFunction(), convertDeclareTargetAttr(), mlir::SourceMgrDiagnosticHandler::emitDiagnostic(), and mlir::query::printMatch().

◆ walk()

WalkResult LocationAttr::walk ( function_ref< WalkResult(Location)>  walkFn)

Walk all of the locations nested directly under, and including, the current.

This means that if a location is nested under a non-location attribute, it will not be walked by this method. This walk is performed in pre-order to get this behavior.

Definition at line 127 of file Location.cpp.

References mlir::AttrTypeWalker::addWalk(), mlir::PreOrder, mlir::WalkResult::skip(), and mlir::AttrTypeWalker::walk().

Referenced by collectLocationsFromLoc(), findInstanceOf(), and getLocationFromLoc().


The documentation for this class was generated from the following files: