tvm
Classes | Public Member Functions | Static Public Member Functions | List of all members
tvm::tir::SeqStmt Class Reference

Sequence statement. More...

#include <stmt.h>

Inheritance diagram for tvm::tir::SeqStmt:
Collaboration diagram for tvm::tir::SeqStmt:

Classes

class  Flattener
 Helper class to flatten sequence of arguments into Array. More...
 

Public Member Functions

 SeqStmt (Array< Stmt > seq, Span span=Span())
 Construct SeqStmt. More...
 
size_t size () const
 
Stmt operator[] (size_t index) const
 Get the index-th element in the sequence. More...
 
 TVM_DEFINE_OBJECT_REF_METHODS (SeqStmt, Stmt, SeqStmtNode)
 
 TVM_DEFINE_OBJECT_REF_COW_METHOD (SeqStmtNode)
 
- Public Member Functions inherited from tvm::tir::Stmt
 TVM_DEFINE_OBJECT_REF_METHODS (Stmt, ObjectRef, StmtNode)
 
- Public Member Functions inherited from tvm::runtime::ObjectRef
 ObjectRef ()=default
 default constructor More...
 
 ObjectRef (ObjectPtr< Object > data)
 Constructor from existing object ptr. More...
 
bool same_as (const ObjectRef &other) const
 Comparator. More...
 
bool operator== (const ObjectRef &other) const
 Comparator. More...
 
bool operator!= (const ObjectRef &other) const
 Comparator. More...
 
bool operator< (const ObjectRef &other) const
 Comparator. More...
 
bool defined () const
 
const Objectget () const
 
const Objectoperator-> () const
 
bool unique () const
 
int use_count () const
 
template<typename ObjectType , typename = std::enable_if_t<std::is_base_of_v<Object, ObjectType>>>
const ObjectType * as () const
 Try to downcast the internal Object to a raw pointer of a corresponding type. More...
 
template<typename ObjectRefType , typename = std::enable_if_t<std::is_base_of_v<ObjectRef, ObjectRefType>>>
Optional< ObjectRefType > as () const
 Try to downcast the ObjectRef to a Optional<T> of the requested type. More...
 

Static Public Member Functions

template<typename... Args>
static Stmt Flatten (Args &&... seq_args)
 Construct a sequence statement by flattening all the arrays and sequences in the arguments recursively. More...
 

Additional Inherited Members

- Public Types inherited from tvm::runtime::ObjectRef
using ContainerType = Object
 type indicate the container type. More...
 
- Static Public Attributes inherited from tvm::runtime::ObjectRef
static constexpr bool _type_is_nullable = true
 
- Protected Member Functions inherited from tvm::runtime::ObjectRef
Objectget_mutable () const
 
- Static Protected Member Functions inherited from tvm::runtime::ObjectRef
template<typename T >
static T DowncastNoCheck (ObjectRef ref)
 Internal helper function downcast a ref without check. More...
 
static void FFIClearAfterMove (ObjectRef *ref)
 Clear the object ref data field without DecRef after we successfully moved the field. More...
 
template<typename ObjectType >
static ObjectPtr< ObjectType > GetDataPtr (const ObjectRef &ref)
 Internal helper function get data_ as ObjectPtr of ObjectType. More...
 
- Protected Attributes inherited from tvm::runtime::ObjectRef
ObjectPtr< Objectdata_
 Internal pointer that backs the reference. More...
 

Detailed Description

Sequence statement.

Constructor & Destructor Documentation

◆ SeqStmt()

tvm::tir::SeqStmt::SeqStmt ( Array< Stmt seq,
Span  span = Span() 
)
explicit

Construct SeqStmt.

Parameters
seqThe sequence.
spanThe location of this object in the source code.

Member Function Documentation

◆ Flatten()

template<typename... Args>
static Stmt tvm::tir::SeqStmt::Flatten ( Args &&...  seq_args)
inlinestatic

Construct a sequence statement by flattening all the arrays and sequences in the arguments recursively.

  • When an argument is nullptr, it will be ignored.
  • When an argument is an array or a SeqStmt, it will be flattened recursively.
  • A normal Stmt will be appended to the end of the sequence.
Note
This function can directly return an element if it is the only element in the sequence.
If the only argument to this function is a SeqStmt, and if no flattening of the SeqStmt is required, then the SeqStmt will be returned as-is.
Parameters
seq_argsThe list of arguments to be flattened.
Template Parameters
Argsarguments
Returns
The constructed statement

◆ operator[]()

Stmt tvm::tir::SeqStmt::operator[] ( size_t  index) const
inline

Get the index-th element in the sequence.

◆ size()

size_t tvm::tir::SeqStmt::size ( ) const
inline
Returns
get the size of the sequence

◆ TVM_DEFINE_OBJECT_REF_COW_METHOD()

tvm::tir::SeqStmt::TVM_DEFINE_OBJECT_REF_COW_METHOD ( SeqStmtNode  )

◆ TVM_DEFINE_OBJECT_REF_METHODS()

tvm::tir::SeqStmt::TVM_DEFINE_OBJECT_REF_METHODS ( SeqStmt  ,
Stmt  ,
SeqStmtNode   
)

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