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.
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: