|
tvm
|
TIR statements. More...
#include <tvm/ffi/reflection/registry.h>#include <tvm/ir/prim/expr.h>#include <tvm/tirx/buffer.h>#include <tvm/tirx/buffer_region.h>#include <tvm/tirx/exec_scope.h>#include <tvm/tirx/layout.h>#include <optional>#include <string>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| class | tvm::tirx::StmtNode |
| Base node of all statements. More... | |
| class | tvm::tirx::Stmt |
| Container of all statements. More... | |
| class | tvm::tirx::BindNode |
| Bind a variable to a value in the enclosing scope. More... | |
| class | tvm::tirx::Bind |
| Managed reference to BindNode. More... | |
| class | tvm::tirx::AttrStmtNode |
| Define certain auxiliary attribute for the body to be a symbolic value. This provide auxiliary information for IR passes that transforms body. More... | |
| class | tvm::tirx::AttrStmt |
| Managed reference to AttrStmtNode. More... | |
| class | tvm::tirx::AssertStmtNode |
| Assert condition, if an error occurs, return the error message. More... | |
| class | tvm::tirx::AssertStmt |
| Managed reference to AssertStmtNode. More... | |
| class | tvm::tirx::BufferStoreNode |
| Store value to the high dimension buffer. More... | |
| class | tvm::tirx::BufferStore |
| Managed reference to BufferStoreNode. More... | |
| class | tvm::tirx::DeclBufferNode |
| Declare a buffer that can be used in the body. More... | |
| class | tvm::tirx::DeclBuffer |
| Managed reference to DeclBufferNode. More... | |
| class | tvm::tirx::AllocBufferNode |
| Allocate a buffer and declare it in scope. More... | |
| class | tvm::tirx::AllocBuffer |
| Managed reference to AllocBufferNode. More... | |
| class | tvm::tirx::SeqStmtNode |
| The container of seq statement. Represent a sequence of statements. More... | |
| class | tvm::tirx::EvaluateNode |
| Evaluates an expression. This is mostly used for putting a Call node into Stmt. More... | |
| class | tvm::tirx::Evaluate |
| Managed reference to EvaluateNode. More... | |
| class | tvm::tirx::SeqStmt |
| Sequence statement. More... | |
| class | tvm::tirx::SeqStmt::Flattener |
| Helper class to flatten sequence of arguments into Array. More... | |
| class | tvm::tirx::IfThenElseNode |
| IfThenElse statement. More... | |
| class | tvm::tirx::IfThenElse |
| Managed reference to IfThenElseNode. More... | |
| class | tvm::tirx::ForNode |
| A for loop, with possible type annotations. More... | |
| class | tvm::tirx::For |
| Managed reference to ForNode. More... | |
| class | tvm::tirx::WhileNode |
| A While loop. More... | |
| class | tvm::tirx::While |
| Managed reference to WhileNode. More... | |
| class | tvm::tirx::ReturnNode |
| A return from the current function. More... | |
| class | tvm::tirx::Return |
| Managed reference to ReturnNode. More... | |
| class | tvm::tirx::BreakNode |
| A Break in control flow. More... | |
| class | tvm::tirx::Break |
| Managed reference to BreakNode. More... | |
| class | tvm::tirx::ContinueNode |
| A Continue in control flow. More... | |
| class | tvm::tirx::Continue |
| Managed reference to ContinueNode. More... | |
| class | tvm::tirx::MatchBufferRegionNode |
| Match introduces a constraint that the source buffer region can be remapped to the data layout specified by the buffer field. The constraint can be checked in later part of lowering (or optionally during runtime). More... | |
| class | tvm::tirx::MatchBufferRegion |
| Managed reference to MatchBufferRegionNode. More... | |
| class | tvm::tirx::SBlockNode |
| A block is a basic schedule unit in TIR. More... | |
| class | tvm::tirx::SBlock |
| Managed reference to SBlockNode. More... | |
| class | tvm::tirx::SBlockRealizeNode |
| A block realization node represents execution of the block at the binding values. More... | |
| class | tvm::tirx::SBlockRealize |
| Managed reference to BlockRealizeNode. More... | |
| class | tvm::tirx::ScopeIdDefStmtNode |
Standalone statement that declares a scope-id binding (e.g. cta_id, warp_id, lane_id). Carries a ScopeIdDef value. More... | |
| class | tvm::tirx::ScopeIdDefStmt |
| Managed reference to ScopeIdDefStmtNode. More... | |
Namespaces | |
| namespace | tvm |
| An object that builds and maintains block scope and StmtSref mapping for Dependence analysis. | |
| namespace | tvm::tirx |
| namespace | tvm::tirx::attr |
| PrimFunc specific attribute names. | |
Enumerations | |
| enum class | tvm::tirx::ForKind : int { tvm::tirx::kSerial = 0 , tvm::tirx::kParallel = 1 , tvm::tirx::kVectorized = 2 , tvm::tirx::kUnrolled = 3 , tvm::tirx::kThreadBinding = 4 } |
| The kind of the loop. More... | |
Functions | |
| bool | tvm::tirx::attr::IsPragmaKey (const std::string &attr_key) |
| Check if attr_key is a pragma key extension. | |
| PrimExpr | tvm::tirx::TypeAnnotation (PrimType dtype, Span span=Span()) |
| Create a type annotation expression. | |
| std::ostream & | tvm::tirx::operator<< (std::ostream &os, ForKind kind) |
| const char * | tvm::tirx::ForKind2String (ForKind t) |
Variables | |
| constexpr const char * | tvm::tirx::attr::compute_scope = "compute_scope" |
| Mark the scope as when computation start to happen. This can hint some code generator to create a new function for compute. | |
| constexpr const char * | tvm::tirx::attr::device_id = "device_id" |
| The allocation device for global malloc in host. | |
| constexpr const char * | tvm::tirx::attr::device_scope = "device_scope" |
| Mark that it is in the device scope. | |
| constexpr const char * | tvm::tirx::attr::device_type = "device_type" |
| The device type. | |
| constexpr const char * | tvm::tirx::attr::extern_scope = "extern_scope" |
| Mark the scope as generated by extern primitive. Such scope can contain arbitrary ir program and we need to be careful when making certain assumptions about the structure of the program. | |
| constexpr const char * | tvm::tirx::attr::pragma_auto_unroll_max_step = "pragma_auto_unroll_max_step" |
| Pragma: auto-unroll, max_step. | |
| constexpr const char * | tvm::tirx::attr::pragma_import_c = "pragma_import_c" |
| Import C source or file into the final code gen module. | |
| constexpr const char * | tvm::tirx::attr::pragma_import_llvm = "pragma_import_llvm" |
| Import llvm source or file into the final code gen module. | |
| constexpr const char * | tvm::tirx::attr::pragma_unroll_explicit = "pragma_unroll_explicit" |
| Pragma: unroll explicit. | |
| constexpr const char * | tvm::tirx::attr::storage_alignment = "storage_alignment" |
| Mark storage alignment requirement of buffers. | |
| constexpr const char * | tvm::tirx::attr::thread_extent = "thread_extent" |
| Mark launching extent of thread, used by device API. | |
| constexpr const char * | tvm::tirx::attr::kVolatile = "tirx.volatile" |
| Annotation key on AllocBuffer marking the allocation as volatile. | |
| constexpr const char * | tvm::tirx::attr::buffer_data_alignment = "buffer_data_alignment" |
| Mark buffer initial addr alignment in bytes. | |
| constexpr const char * | tvm::tirx::attr::buffer_allocated_addr = "buffer_allocated_addr" |
| Mark buffer allocated addr in bytes. | |
| constexpr const char * | tvm::tirx::attr::tensorized_nki_instruction = "tensorized_nki_instruction" |
| constexpr const char * | tvm::tirx::attr::kPersistentKernel = "tirx.persistent_kernel" |
| Mark the kernel as persistent. | |
| constexpr const char * | tvm::tirx::attr::kDeviceEntry = "tirx.device_entry" |
Mark the device-region entry within a PrimFunc body. The AttrStmt so-keyed has a body that is the device-side region; anything before the marker (within the PrimFunc body) is host code. Value is IntImm("bool", 1) – a boolean marker, similar to kPersistentKernel. | |
TIR statements.