24 #ifndef TVM_TIR_FUNCTION_H_ 25 #define TVM_TIR_FUNCTION_H_ 113 v->Visit(
"params", ¶ms);
114 v->Visit(
"body", &body);
115 v->Visit(
"ret_type", &ret_type);
116 v->Visit(
"buffer_map", &buffer_map);
117 v->Visit(
"preflattened_buffer_map", &preflattened_buffer_map);
118 v->Visit(
"attrs", &
attrs);
119 v->Visit(
"span", &
span);
133 hash_reduce(buffer_map);
134 hash_reduce(preflattened_buffer_map);
135 hash_reduce(ret_type);
148 static constexpr
const char*
_type_key =
"tir.PrimFunc";
203 v->Visit(
"desc", &desc);
204 v->Visit(
"impl", &impl);
207 static constexpr
const char*
_type_key =
"tir.TensorIntrin";
232 TVM_DLL
static void Register(
String name, TensorIntrin intrin,
bool override =
false);
240 TVM_DLL
static TensorIntrin Get(
String name);
347 #endif // TVM_TIR_FUNCTION_H_ tvm::Span Span
Definition: base.h:65
DictAttrs attrs
Additional attributes storing the meta-data.
Definition: function.h:80
bool DefEqual(const ObjectRef &lhs, const ObjectRef &rhs)
Reduce condition to comparison of two definitions, where free vars can be mapped. ...
A Reducer class to reduce the structural equality result of two objects.
Definition: structural_equal.h:124
void VisitAttrs(AttrVisitor *v)
Definition: function.h:202
runtime implementation for LibTorch/TorchScript.
Definition: analyzer.h:36
A Reducer class to reduce the structural hash value.
Definition: structural_hash.h:102
Map< tir::Var, Buffer > preflattened_buffer_map
The buffer map prior to flattening.
Definition: function.h:110
PrimExpr equal(PrimExpr a, PrimExpr b, Span span=Span())
equal
PrimFunc impl
The function of the implementation for the execution.
Definition: function.h:200
PrimFuncFrame PrimFunc()
The primitive function statement.
Primitive functions that contains TIR statements.
Definition: function.h:46
Tensor intrinsics for tensorization.
Definition: function.h:195
Managed reference to DictAttrsNode.
Definition: attrs.h:227
base class of all object containers.
Definition: object.h:167
bool SEqualReduce(const PrimFuncNode *other, SEqualReducer equal) const
Definition: function.h:123
Type VoidType()
Definition: type.h:377
constexpr const char * kNoAlias
Whether to set noalias rule on the function arguments.
Definition: function.h:325
Visitor class to get the attributes of an AST/IR node. The content is going to be called for each fie...
Definition: reflection.h:52
constexpr const char * kIsEntryFunc
Mark the function as the entry function of the final generated runtime module.
Definition: function.h:335
A device-independent managed NDArray abstraction.
void VisitAttrs(tvm::AttrVisitor *v)
Definition: function.h:112
Managed reference to TensorIntrinNode.
Definition: function.h:214
Span span
Span that points to the original source code. Reserved debug information.
Definition: expr.h:55
Array< tir::Var > params
Function parameters.
Definition: function.h:49
Type checked_type_
Stores the result of type inference(type checking).
Definition: expr.h:367
Array, container representing a contiguous sequence of ObjectRefs.
Definition: array.h:289
Managed reference to PrimFuncNode.
Definition: function.h:156
void SHashReduce(SHashReducer hash_reduce) const
Definition: function.h:131
Container of all statements.
Definition: stmt.h:57
Reference to string objects.
Definition: string.h:97
#define TVM_DEFINE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)
Definition: object.h:713
PrimFunc Specialize(PrimFunc func, const Map< Var, ObjectRef > ¶m_map)
TVM_DECLARE_FINAL_OBJECT_INFO(PrimFuncNode, BaseFuncNode)
constexpr const char * kDeviceThreadAxis
List of thread IterVar that a DeviceLaunch function corresponds to.
Definition: function.h:311
Base class of all object reference.
Definition: object.h:511
#define TVM_DEFINE_OBJECT_REF_COW_METHOD(ObjectName)
Define CopyOnWrite function in an ObjectRef.
Definition: object.h:785
Managed reference to FuncTypeNode.
Definition: type.h:461
constexpr const char * kIsGlobalFunc
Mark the function as the global function called from the host.
Definition: function.h:342
Map< tir::Var, Buffer > buffer_map
Maps some parameters to specific Buffer data structures.
Definition: function.h:92
Symbolic n-dimensional array, to represent a memory buffer.
Base node of all functions.
Definition: function.h:77
Map container of NodeRef->NodeRef in DSL graph. Map implements copy on write semantics, which means map is mutable but copy will happen when array is referenced in more than two places.
Definition: map.h:1271
Managed reference to BaseFuncNode.
Definition: function.h:143
Optional container that to represent to a Nullable variant of T.
Definition: optional.h:51
Managed reference to TypeNode.
Definition: type.h:93
FuncType func_type_annotation() const
Return the derived function annotation of this function.
tir::Stmt body
The body of the function.
Definition: function.h:51
static constexpr const char * _type_key
Definition: function.h:148
PrimFunc desc
The function to describe the computation.
Definition: function.h:198
constexpr const char * kDeviceUseDynSharedMemory
Whether or not use dynamic shared memory.
Definition: function.h:318
Type ret_type
The return type of the function.
Definition: function.h:53
void DefHash(const ObjectRef &key) const
Push hash of key to the current sequence of hash values.
Definition: structural_hash.h:179