MLIR 23.0.0git
mlir::SideEffects::Resource::Base< DerivedResource, BaseResource > Class Template Reference

This base class is used for derived effects that are non-parametric. More...

#include "mlir/Interfaces/SideEffectInterfaces.h"

Inheritance diagram for mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >:

Public Types

using BaseT = Base<DerivedResource, BaseResource>
 Use the current instantiation so get()/getResourceID() refer to this hierarchy's singleton, not Base<DerivedResource, Resource>'s.

Static Public Member Functions

static DerivedResource * get ()
 Returns a unique instance for the given effect class.
static TypeID getResourceID ()
 Return the unique identifier for the base resource class.
static bool classof (const Resource *resource)
 'classof' used to support llvm style cast functionality.

Protected Member Functions

 Base ()
 Base (TypeID id)
 Constructor for use when this type is used as a parent (BaseResource); allows the derived resource to pass its TypeID so the hierarchy is correct.
Protected Member Functions inherited from mlir::SideEffects::Resource
 Resource (TypeID id)

Additional Inherited Members

Public Member Functions inherited from mlir::SideEffects::Resource
virtual ~Resource ()=default
TypeID getResourceID () const
 Return the unique identifier for the base resource class.
virtual StringRef getName () const =0
 Return a string name of the resource.
virtual ResourcegetParent () const
 Return the parent resource in the hierarchy, or nullptr for a root.
virtual bool isAddressable () const
 Returns true if this resource is addressable (effects on it can alias pointer-based memory).
bool isSubresourceOf (const Resource *other) const
 Returns true if this resource is a subresource of (or equal to) another.
bool isDisjointFrom (const Resource *other) const
 Returns true if this resource is disjoint from another.

Detailed Description

template<typename DerivedResource, typename BaseResource = Resource>
class mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >

This base class is used for derived effects that are non-parametric.

Definition at line 94 of file SideEffectInterfaces.h.

Member Typedef Documentation

◆ BaseT

template<typename DerivedResource, typename BaseResource = Resource>
using mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >::BaseT = Base<DerivedResource, BaseResource>

Use the current instantiation so get()/getResourceID() refer to this hierarchy's singleton, not Base<DerivedResource, Resource>'s.

Definition at line 98 of file SideEffectInterfaces.h.

Constructor & Destructor Documentation

◆ Base() [1/2]

template<typename DerivedResource, typename BaseResource = Resource>
mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >::Base ( )
inlineprotected

Definition at line 117 of file SideEffectInterfaces.h.

◆ Base() [2/2]

template<typename DerivedResource, typename BaseResource = Resource>
mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >::Base ( TypeID id)
inlineprotected

Constructor for use when this type is used as a parent (BaseResource); allows the derived resource to pass its TypeID so the hierarchy is correct.

Definition at line 121 of file SideEffectInterfaces.h.

Member Function Documentation

◆ classof()

template<typename DerivedResource, typename BaseResource = Resource>
bool mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >::classof ( const Resource * resource)
inlinestatic

'classof' used to support llvm style cast functionality.

Returns true iff the resource is the same as or a descendant of this resource type in the hierarchy (so isa/cast work for ancestor checks).

Definition at line 112 of file SideEffectInterfaces.h.

◆ get()

template<typename DerivedResource, typename BaseResource = Resource>
DerivedResource * mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >::get ( )
inlinestatic

Returns a unique instance for the given effect class.

Definition at line 101 of file SideEffectInterfaces.h.

◆ getResourceID()

template<typename DerivedResource, typename BaseResource = Resource>
TypeID mlir::SideEffects::Resource::Base< DerivedResource, BaseResource >::getResourceID ( )
inlinestatic

Return the unique identifier for the base resource class.

Definition at line 107 of file SideEffectInterfaces.h.


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