tvm
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tvm::tir::BlockNode Class Reference

A block is a basic schedule unit in TIR. More...

#include <stmt.h>

Inheritance diagram for tvm::tir::BlockNode:
Collaboration diagram for tvm::tir::BlockNode:

Public Member Functions

 TVM_DECLARE_FINAL_OBJECT_INFO (BlockNode, StmtNode)
 
- Public Member Functions inherited from tvm::tir::StmtNode
 StmtNode ()=default
 
 StmtNode (Span span)
 
 TVM_OBJECT_ENABLE_SCRIPT_PRINTER ()
 
 TVM_DECLARE_BASE_OBJECT_INFO (StmtNode, Object)
 

Static Public Member Functions

static void RegisterReflection ()
 
- Static Public Member Functions inherited from tvm::tir::StmtNode
static void RegisterReflection ()
 

Public Attributes

Array< IterVariter_vars
 The variables of the block. More...
 
Array< BufferRegionreads
 The read buffer regions of the block. More...
 
Array< BufferRegionwrites
 The write buffer regions of the block. More...
 
String name_hint
 The name_hint of the block. More...
 
Array< Bufferalloc_buffers
 The buffer allocated in the block. More...
 
Array< MatchBufferRegionmatch_buffers
 The match buffer regions. More...
 
Map< String, ffi::Any > annotations
 The annotation of the block. More...
 
Optional< Stmtinit
 The init statement is executed during the first iteration of reduction loops in a reduction block. The optional init field allows us to represent initialization and reduction update in a single block and transform them collectively. We also provide primitives to decompose the init into a separate block during scheduling. Init field is std::nullopt if there is no reduction iter_vars. More...
 
Stmt body
 The body of the block. More...
 
- Public Attributes inherited from tvm::tir::StmtNode
Span span
 Span that points to the original source code. Reserved debug information. More...
 

Static Public Attributes

static constexpr const char * _type_key = "tir.Block"
 
- Static Public Attributes inherited from tvm::tir::StmtNode
static constexpr const char * _type_key = "tir.Stmt"
 
static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind = kTVMFFISEqHashKindTreeNode
 
static constexpr const uint32_t _type_child_slots = 15
 

Detailed Description

A block is a basic schedule unit in TIR.

Note
Block's body is parameterized by iter vars.
with T.block(name):
v0 = T.axis.S(domain, value0)
v1 = T.axis.R(domain, value1)
...
T.reads([buffer0[start:end, ...], ...])
T.writes([buffer1[start:end, ...], ...])
T.where(predicate)
buffer2 = T.alloc_buffer(shape, dtype)
buffer3 = T.match_buffer(source_buffer[start:end, ...])
T.attr({attr_key: attr_value, ...})
with T.init():
// init body
// body
Tensor shape(const Tensor &src, DataType dtype, const std::string name="T_shape", const std::string tag=kInjective)
Get the shape of input tensor.
Definition: transform.h:1945

Member Function Documentation

◆ RegisterReflection()

static void tvm::tir::BlockNode::RegisterReflection ( )
inlinestatic

◆ TVM_DECLARE_FINAL_OBJECT_INFO()

tvm::tir::BlockNode::TVM_DECLARE_FINAL_OBJECT_INFO ( BlockNode  ,
StmtNode   
)

Member Data Documentation

◆ _type_key

constexpr const char* tvm::tir::BlockNode::_type_key = "tir.Block"
staticconstexpr

◆ alloc_buffers

Array<Buffer> tvm::tir::BlockNode::alloc_buffers

The buffer allocated in the block.

◆ annotations

Map<String, ffi::Any> tvm::tir::BlockNode::annotations

The annotation of the block.

◆ body

Stmt tvm::tir::BlockNode::body

The body of the block.

◆ init

Optional<Stmt> tvm::tir::BlockNode::init

The init statement is executed during the first iteration of reduction loops in a reduction block. The optional init field allows us to represent initialization and reduction update in a single block and transform them collectively. We also provide primitives to decompose the init into a separate block during scheduling. Init field is std::nullopt if there is no reduction iter_vars.

◆ iter_vars

Array<IterVar> tvm::tir::BlockNode::iter_vars

The variables of the block.

◆ match_buffers

Array<MatchBufferRegion> tvm::tir::BlockNode::match_buffers

The match buffer regions.

◆ name_hint

String tvm::tir::BlockNode::name_hint

The name_hint of the block.

◆ reads

Array<BufferRegion> tvm::tir::BlockNode::reads

The read buffer regions of the block.

◆ writes

Array<BufferRegion> tvm::tir::BlockNode::writes

The write buffer regions of the block.


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