Base class of all object reference.
More...
#include <object.h>
Inherited by tvm::runtime::Array< Range >, tvm::runtime::Array< Region >, tvm::runtime::Array< tvm::arith::IterSplitExpr >, tvm::runtime::Array< tvm::arith::IterSumExpr >, tvm::runtime::Array< tvm::AttrFieldInfo >, tvm::runtime::Array< tvm::auto_scheduler::Iterator >, tvm::runtime::Array< tvm::auto_scheduler::Stage >, tvm::runtime::Array< tvm::auto_scheduler::Step >, tvm::runtime::Array< tvm::ConstantInfo >, tvm::runtime::Array< tvm::ConstantPoolInfo >, tvm::runtime::Array< tvm::Constructor >, tvm::runtime::Array< tvm::Diagnostic >, tvm::runtime::Array< tvm::FloatImm >, tvm::runtime::Array< tvm::instrument::PassInstrument >, tvm::runtime::Array< tvm::Integer >, tvm::runtime::Array< tvm::IntImm >, tvm::runtime::Array< tvm::IRModule >, tvm::runtime::Array< tvm::meta_schedule::ArgInfo >, tvm::runtime::Array< tvm::meta_schedule::MeasureCallback >, tvm::runtime::Array< tvm::meta_schedule::TaskRecord >, tvm::runtime::Array< tvm::ObjectPath >, tvm::runtime::Array< tvm::PoolInfo >, tvm::runtime::Array< tvm::PrimExpr >, tvm::runtime::Array< tvm::Range >, tvm::runtime::Array< tvm::relay::Clause >, tvm::runtime::Array< tvm::relay::DFPattern >, tvm::runtime::Array< tvm::relay::OpImplementation >, tvm::runtime::Array< tvm::relay::OpSpecialization >, tvm::runtime::Array< tvm::relay::Pattern >, tvm::runtime::Array< tvm::relay::Var >, tvm::runtime::Array< tvm::RelayExpr >, tvm::runtime::Array< tvm::runtime::Array< tvm::Integer > >, tvm::runtime::Array< tvm::runtime::Array< tvm::PrimExpr > >, tvm::runtime::Array< tvm::runtime::Map< tvm::runtime::String, tvm::runtime::ObjectRef > >, tvm::runtime::Array< tvm::runtime::ObjectRef >, tvm::runtime::Array< tvm::runtime::Optional< tvm::Integer > >, tvm::runtime::Array< tvm::runtime::String >, tvm::runtime::Array< tvm::script::ir_builder::IRBuilderFrame >, tvm::runtime::Array< tvm::script::printer::AssignDoc >, tvm::runtime::Array< tvm::script::printer::Doc >, tvm::runtime::Array< tvm::script::printer::ExprDoc >, tvm::runtime::Array< tvm::script::printer::Frame >, tvm::runtime::Array< tvm::script::printer::IdDoc >, tvm::runtime::Array< tvm::script::printer::StmtDoc >, tvm::runtime::Array< tvm::Target >, tvm::runtime::Array< tvm::te::IterVarRelation >, tvm::runtime::Array< tvm::te::Operation >, tvm::runtime::Array< tvm::te::Schedule >, tvm::runtime::Array< tvm::te::Stage >, tvm::runtime::Array< tvm::te::Tensor >, tvm::runtime::Array< tvm::TensorAffineType >, tvm::runtime::Array< tvm::tir::Buffer >, tvm::runtime::Array< tvm::tir::BufferRegion >, tvm::runtime::Array< tvm::tir::IndexMap >, tvm::runtime::Array< tvm::tir::Instruction >, tvm::runtime::Array< tvm::tir::IterVar >, tvm::runtime::Array< tvm::tir::MatchBufferRegion >, tvm::runtime::Array< tvm::tir::Stmt >, tvm::runtime::Array< tvm::tir::Var >, tvm::runtime::Array< tvm::transform::Pass >, tvm::runtime::Array< tvm::Type >, tvm::runtime::Array< tvm::TypeConstraint >, tvm::runtime::Array< tvm::TypeVar >, tvm::runtime::Map< tvm::GlobalTypeVar, tvm::TypeData >, tvm::runtime::Map< tvm::GlobalVar, tvm::BaseFunc >, tvm::runtime::Map< tvm::ObjectPath, tvm::runtime::String >, tvm::runtime::Map< tvm::relay::Var, tvm::runtime::ObjectRef >, tvm::runtime::Map< tvm::runtime::ObjectRef, tvm::runtime::String >, tvm::runtime::Map< tvm::runtime::String, tvm::GlobalTypeVar >, tvm::runtime::Map< tvm::runtime::String, tvm::GlobalVar >, tvm::runtime::Map< tvm::runtime::String, tvm::runtime::Map< tvm::runtime::String, tvm::runtime::ObjectRef > >, tvm::runtime::Map< tvm::runtime::String, tvm::runtime::ObjectRef >, tvm::runtime::Map< tvm::SourceName, tvm::Source >, tvm::runtime::Map< tvm::Target, tvm::Integer >, tvm::runtime::Map< tvm::te::Operation, tvm::te::Stage >, tvm::runtime::Map< tvm::tir::Buffer, tvm::tir::Buffer >, tvm::runtime::Map< tvm::tir::Instruction, tvm::runtime::ObjectRef >, tvm::runtime::Map< tvm::tir::IterVar, tvm::te::IterVarAttr >, tvm::runtime::Map< tvm::tir::usmp::BufferInfo, tvm::tir::Stmt >, tvm::runtime::Map< tvm::tir::Var, tvm::PrimExpr >, tvm::runtime::Map< tvm::tir::Var, tvm::Range >, tvm::runtime::Map< tvm::tir::Var, tvm::tir::Buffer >, tvm::runtime::Map< tvm::tir::Var, tvm::tir::IterVar >, tvm::runtime::Optional< tvm::Bool >, tvm::runtime::Optional< tvm::DiagnosticContext >, tvm::runtime::Optional< tvm::FloatImm >, tvm::runtime::Optional< tvm::Integer >, tvm::runtime::Optional< tvm::IRModule >, tvm::runtime::Optional< tvm::meta_schedule::CostModel >, tvm::runtime::Optional< tvm::meta_schedule::Database >, tvm::runtime::Optional< tvm::meta_schedule::SearchStrategy >, tvm::runtime::Optional< tvm::meta_schedule::SpaceGenerator >, tvm::runtime::Optional< tvm::PrimExpr >, tvm::runtime::Optional< tvm::runtime::Array< tvm::auto_scheduler::MeasureCallback > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::FloatImm > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::Integer > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::meta_schedule::ArgInfo > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::meta_schedule::BuilderResult > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::meta_schedule::MeasureCandidate > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::meta_schedule::Postproc > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::meta_schedule::RunnerFuture > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::meta_schedule::ScheduleRule > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::tir::BufferRegion > >, tvm::runtime::Optional< tvm::runtime::Array< tvm::tir::Stmt > >, tvm::runtime::Optional< tvm::runtime::Map< tvm::meta_schedule::Mutator, tvm::FloatImm > >, tvm::runtime::Optional< tvm::runtime::Map< tvm::runtime::String, tvm::runtime::NDArray > >, tvm::runtime::Optional< tvm::runtime::Map< tvm::runtime::String, tvm::runtime::ObjectRef > >, tvm::runtime::Optional< tvm::runtime::NDArray >, tvm::runtime::Optional< tvm::runtime::ObjectRef >, tvm::runtime::Optional< tvm::runtime::String >, tvm::runtime::Optional< tvm::script::printer::ExprDoc >, tvm::runtime::Optional< tvm::Target >, tvm::runtime::Optional< tvm::tir::IterVar >, tvm::runtime::Optional< tvm::tir::Stmt >, tvm::runtime::Optional< tvm::Type >, tvm::AffineType, tvm::arith::ConstIntBound, tvm::arith::IntConstraints, tvm::arith::IntConstraintsTransform, tvm::arith::IntGroupBounds, tvm::arith::IntSet, tvm::arith::IterMapResult, tvm::arith::IterMark, tvm::arith::ModularSet, tvm::AttrFieldInfo, tvm::Attrs, tvm::auto_scheduler::AccessAnalyzer, tvm::auto_scheduler::AttachMap, tvm::auto_scheduler::BuildResult, tvm::auto_scheduler::ComputeDAG, tvm::auto_scheduler::CostModel, tvm::auto_scheduler::HardwareParams, tvm::auto_scheduler::Iterator, tvm::auto_scheduler::MeasureCallback, tvm::auto_scheduler::MeasureInput, tvm::auto_scheduler::MeasureResult, tvm::auto_scheduler::ProgramBuilder, tvm::auto_scheduler::ProgramMeasurer, tvm::auto_scheduler::ProgramRunner, tvm::auto_scheduler::RecordReader, tvm::auto_scheduler::SearchCallback, tvm::auto_scheduler::SearchPolicy, tvm::auto_scheduler::SearchTask, tvm::auto_scheduler::Stage, tvm::auto_scheduler::State, tvm::auto_scheduler::Step, tvm::auto_scheduler::TuningOptions, tvm::BaseExpr, tvm::CompilationConfig, tvm::ConstantInfo, tvm::ConstantMemoryPools, tvm::Diagnostic, tvm::DiagnosticContext, tvm::DiagnosticRenderer, tvm::EnvFunc, tvm::GenericFunc, tvm::GlobalVarSupply, tvm::instrument::PassInstrument, tvm::IRModule, tvm::MemoryInfo, tvm::meta_schedule::ArgInfo, tvm::meta_schedule::Builder, tvm::meta_schedule::BuilderInput, tvm::meta_schedule::BuilderResult, tvm::meta_schedule::CostModel, tvm::meta_schedule::Database, tvm::meta_schedule::ExtractedTask, tvm::meta_schedule::FeatureExtractor, tvm::meta_schedule::MeasureCallback, tvm::meta_schedule::MeasureCandidate, tvm::meta_schedule::Mutator, tvm::meta_schedule::Postproc, tvm::meta_schedule::Profiler, tvm::meta_schedule::Runner, tvm::meta_schedule::RunnerFuture, tvm::meta_schedule::RunnerInput, tvm::meta_schedule::RunnerResult, tvm::meta_schedule::ScheduleRule, tvm::meta_schedule::SearchStrategy, tvm::meta_schedule::SpaceGenerator, tvm::meta_schedule::TaskRecord, tvm::meta_schedule::TaskScheduler, tvm::meta_schedule::TuneContext, tvm::meta_schedule::TuningRecord, tvm::meta_schedule::Workload, tvm::NameSupply, tvm::ObjectPath, tvm::ObjectPathPair, tvm::PoolInfo, tvm::PoolInfoProperties, tvm::PrinterConfig, tvm::Range, tvm::relay::Clause, tvm::relay::ConstructorValue, tvm::relay::DFPattern, tvm::relay::DFPatternCallback, tvm::relay::Executor, tvm::relay::Id, tvm::relay::OpImplementation, tvm::relay::OpSpecialization, tvm::relay::OpStrategy, tvm::relay::Pattern, tvm::relay::RecClosure, tvm::relay::RefValue, tvm::relay::Runtime, tvm::runtime::ADT, tvm::runtime::Array< T, typename >, tvm::runtime::Closure, tvm::runtime::Map< K, V, typename, typename >, tvm::runtime::metadata::MetadataBase, tvm::runtime::Module, tvm::runtime::NDArray, tvm::runtime::Optional< T >, tvm::runtime::PackedFunc, tvm::runtime::profiling::DeviceWrapper, tvm::runtime::profiling::MetricCollector, tvm::runtime::profiling::Report, tvm::runtime::ShapeTuple, tvm::runtime::String, tvm::runtime::Timer, tvm::runtime::vm::Storage, tvm::script::ir_builder::IRBuilder, tvm::script::ir_builder::IRBuilderFrame, tvm::script::printer::Doc, tvm::script::printer::Frame, tvm::script::printer::IRDocsifier, tvm::Source, tvm::SourceMap, tvm::SourceName, tvm::Span, tvm::Target, tvm::TargetKind, tvm::TargetTag, tvm::te::IterVarAttr, tvm::te::IterVarRelation, tvm::te::Operation, tvm::te::Schedule, tvm::te::SpecializedCondition, tvm::te::Stage, tvm::te::TensorIntrin, tvm::te::TensorIntrinCall, tvm::tir::BijectiveLayout, tvm::tir::BlockRV, tvm::tir::BlockScope, tvm::tir::Buffer, tvm::tir::BufferRegion, tvm::tir::CommReducer, tvm::tir::DataProducer, tvm::tir::Dependency, tvm::tir::IndexMap, tvm::tir::Instruction, tvm::tir::InstructionKind, tvm::tir::IterVar, tvm::tir::Layout, tvm::tir::LoopRV, tvm::tir::MatchBufferRegion, tvm::tir::Schedule, tvm::tir::ScheduleState, tvm::tir::Stmt, tvm::tir::StmtSRef, tvm::tir::TensorIntrin, tvm::tir::Trace, tvm::tir::usmp::AllocatedPoolInfo, tvm::tir::usmp::BufferInfo, tvm::tir::usmp::BufferInfoAnalysis, tvm::tir::usmp::PoolAllocation, tvm::transform::Pass, tvm::transform::PassContext, tvm::transform::PassInfo, tvm::Type, tvm::TypedEnvFunc< R(Args...)>, tvm::TypeReporter, tvm::VirtualDevice, and tvm::WorkspaceMemoryPools.
Base class of all object reference.
◆ ContainerType
type indicate the container type.
◆ ObjectRef() [1/2]
tvm::runtime::ObjectRef::ObjectRef |
( |
| ) |
|
|
default |
◆ ObjectRef() [2/2]
◆ as()
template<typename ObjectType >
const ObjectType * tvm::runtime::ObjectRef::as |
( |
| ) |
const |
|
inline |
Try to downcast the internal Object to a raw pointer of a corresponding type.
The function will return a nullptr if the cast failed.
if (const Add *add = node_ref.As<Add>()) { // This is an add node }
- Template Parameters
-
ObjectType | the target type, must be a subtype of Object/ |
◆ defined()
bool tvm::runtime::ObjectRef::defined |
( |
| ) |
const |
|
inline |
- Returns
- whether the object is defined(not null).
◆ DowncastNoCheck()
template<typename T >
static T tvm::runtime::ObjectRef::DowncastNoCheck |
( |
ObjectRef |
ref | ) |
|
|
inlinestaticprotected |
Internal helper function downcast a ref without check.
- Note
- Only used for internal dev purposes.
- Template Parameters
-
T | The target reference type. |
- Returns
- The casted result.
◆ FFIClearAfterMove()
static void tvm::runtime::ObjectRef::FFIClearAfterMove |
( |
ObjectRef * |
ref | ) |
|
|
inlinestaticprotected |
Clear the object ref data field without DecRef after we successfully moved the field.
- Parameters
-
◆ get()
const Object* tvm::runtime::ObjectRef::get |
( |
| ) |
const |
|
inline |
- Returns
- the internal object pointer
◆ get_mutable()
Object* tvm::runtime::ObjectRef::get_mutable |
( |
| ) |
const |
|
inlineprotected |
- Returns
- return a mutable internal ptr, can be used by sub-classes.
◆ GetDataPtr()
template<typename ObjectType >
Internal helper function get data_ as ObjectPtr of ObjectType.
- Note
- only used for internal dev purpose.
- Template Parameters
-
ObjectType | The corresponding object type. |
- Returns
- the corresponding type.
◆ operator!=()
bool tvm::runtime::ObjectRef::operator!= |
( |
const ObjectRef & |
other | ) |
const |
|
inline |
Comparator.
- Parameters
-
- Returns
- the compare result.
◆ operator->()
const Object* tvm::runtime::ObjectRef::operator-> |
( |
| ) |
const |
|
inline |
- Returns
- the internal object pointer
◆ operator<()
bool tvm::runtime::ObjectRef::operator< |
( |
const ObjectRef & |
other | ) |
const |
|
inline |
Comparator.
- Parameters
-
other | Another object ref by address. |
- Returns
- the compare result.
◆ operator==()
bool tvm::runtime::ObjectRef::operator== |
( |
const ObjectRef & |
other | ) |
const |
|
inline |
Comparator.
- Parameters
-
- Returns
- the compare result.
◆ same_as()
bool tvm::runtime::ObjectRef::same_as |
( |
const ObjectRef & |
other | ) |
const |
|
inline |
Comparator.
- Parameters
-
- Returns
- the compare result.
◆ unique()
bool tvm::runtime::ObjectRef::unique |
( |
| ) |
const |
|
inline |
- Returns
- whether the reference is unique
◆ use_count()
int tvm::runtime::ObjectRef::use_count |
( |
| ) |
const |
|
inline |
- Returns
- The use count of the ptr, for debug purposes
◆ Downcast
template<typename SubRef , typename BaseRef >
SubRef Downcast |
( |
BaseRef |
ref | ) |
|
|
friend |
Downcast a base reference type to a more specific type.
- Parameters
-
- Returns
- The corresponding SubRef.
- Template Parameters
-
SubRef | The target specific reference type. |
BaseRef | the current reference type. |
◆ ObjectInternal
friend class ObjectInternal |
|
friend |
◆ ObjectPtrHash
◆ TVMArgsSetter
◆ TVMRetValue
◆ _type_is_nullable
constexpr bool tvm::runtime::ObjectRef::_type_is_nullable = true |
|
static |
◆ data_
Internal pointer that backs the reference.
The documentation for this class was generated from the following file: