SourceName
解读#
SourceNameNode
#
/*!
* \brief The source name in the Span
* \sa SourceNameNode, Span
*/
class SourceName;
/*!
* \brief The name of a source fragment.
*/
class SourceNameNode : public Object {
public:
/*! \brief The source name. */
String name;
// override attr visitor
void VisitAttrs(AttrVisitor* v) { v->Visit("name", &name); }
static constexpr bool _type_has_method_sequal_reduce = true;
bool SEqualReduce(const SourceNameNode* other, SEqualReducer equal) const {
return equal(name, other->name);
}
static constexpr const char* _type_key = "SourceName";
TVM_DECLARE_FINAL_OBJECT_INFO(SourceNameNode, Object);
};
SourceNameNode
继承自 Object
类的子类,它表示源代码片段的名称。该类具有以下成员变量和成员函数:
name
:一个字符串类型的成员变量,表示源代码片段的名称。VisitAttrs(AttrVisitor* v)
:一个成员函数,用于访问属性。它接受一个指向AttrVisitor
对象的指针作为参数,并调用v->Visit("name", &name)
来访问name
属性。_type_has_method_sequal_reduce
:一个静态常量表达式布尔值,表示该类型是否具有SEqualReduce
方法。SEqualReduce(const SourceNameNode* other, SEqualReducer equal) const
:一个成员函数,用于比较两个SourceNameNode
对象是否相等。它接受一个指向另一个SourceNameNode
对象的指针和一个SEqualReducer
对象作为参数,并使用equal
函数比较两个对象的name
属性是否相等。_type_key
:一个静态常量字符指针,表示该类型的键。TVM_DECLARE_FINAL_OBJECT_INFO(SourceNameNode, Object)
:一个宏定义,用于声明SourceNameNode
对象的最终信息。
总体来说,这段代码定义了一个表示源代码片段名称的类,并提供了相应的属性访问和相等性比较功能。
SourceName
#
/*!
* \brief The source name of a file span.
* \sa SourceNameNode, Span
*/
class SourceName : public ObjectRef {
public:
/*!
* \brief Get an SourceName for a given operator name.
* Will raise an error if the source name has not been registered.
* \param name Name of the operator.
* \return SourceName valid throughout program lifetime.
*/
TVM_DLL static SourceName Get(const String& name);
TVM_DEFINE_OBJECT_REF_METHODS(SourceName, ObjectRef, SourceNameNode);
};
SourceName
类,它继承自 ObjectRef
类。该类具有以下成员函数:
Get(const String& name)
:一个静态成员函数,用于获取给定算子名称的SourceName
对象。如果源名称尚未注册,则会引发错误。该函数接受字符串类型的参数name
,表示算子的名称,并返回在整个程序生命周期内有效的SourceName
对象。TVM_DEFINE_OBJECT_REF_METHODS(SourceName, ObjectRef, SourceNameNode)
:一个宏定义,用于定义SourceName
对象的引用方法。
总体来说,这段代码定义了一个用于获取算子名称对应的 SourceName
对象的类,并提供了相应的引用方法。