Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its own properties, including: 1) A boolean indicating if the instruction is pure, i.e. change nothing in the schedule state 2) A functor that applies the instruction to a TensorIR schedule 3) A functor that converts the instruction to a statement in python syntax 4) A functor that serialize its attributes to JSON 5) A functor that deserialize its attributes from JSON.
More...
#include <instruction.h>
|
static constexpr const char * | _type_key = "tir.InstructionKind" |
|
Kind of an instruction, e.g. Split, Reorder, etc. Besides the name, every kind of instruction has its own properties, including: 1) A boolean indicating if the instruction is pure, i.e. change nothing in the schedule state 2) A functor that applies the instruction to a TensorIR schedule 3) A functor that converts the instruction to a statement in python syntax 4) A functor that serialize its attributes to JSON 5) A functor that deserialize its attributes from JSON.
Unlike tvm::OpNode
, InstructionKindNode
doesn't support unstructured properties, mainly because there is no such usecase yet to add any other property.
◆ IsPostproc()
bool tvm::tir::InstructionKindNode::IsPostproc |
( |
| ) |
const |
Checks if the instruction kind is EnterPostproc.
◆ RegisterReflection()
static void tvm::tir::InstructionKindNode::RegisterReflection |
( |
| ) |
|
|
inlinestatic |
◆ TVM_DECLARE_FINAL_OBJECT_INFO()
tvm::tir::InstructionKindNode::TVM_DECLARE_FINAL_OBJECT_INFO |
( |
InstructionKindNode |
, |
|
|
runtime::Object |
|
|
) |
| |
◆ _type_key
constexpr const char* tvm::tir::InstructionKindNode::_type_key = "tir.InstructionKind" |
|
staticconstexpr |
◆ f_apply_to_schedule
A functor that applies the instruction to a TensorIR schedule.
◆ f_as_python
A functor that converts the instruction to a statement in python syntax.
◆ f_attrs_as_json
A functor that serialize its attributes to JSON.
- Note
- If the functor is null, it means no conversion is needed
◆ f_attrs_from_json
A functor that deserialize its attributes from JSON.
- Note
- If the functor is null, it means no conversion is needed
◆ is_pure
bool tvm::tir::InstructionKindNode::is_pure {false} |
Indicates if the instruction is pure, i.e. removing it alone doesn't mutate the schedule state. For example, the instruction GetBlock
is pure because it changes nothing, while ComputeInline
is not because removing it leads to a different resulting schedule.
◆ name
String tvm::tir::InstructionKindNode::name |
The name of a kind of instructions.
The documentation for this class was generated from the following file: