24 #ifndef TVM_RELAY_DATAFLOW_PATTERN_H_ 25 #define TVM_RELAY_DATAFLOW_PATTERN_H_ 42 static constexpr
const char*
_type_key =
"DFPatternNode";
53 DFPattern operator()(
const std::vector<DFPattern>& args);
71 DFPattern HasDtype(
const std::string& dtype);
88 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.ExprPattern";
121 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.VarPattern";
140 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.ConstantPattern";
170 v->Visit(
"args", &args);
173 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.CallPattern";
200 v->Visit(
"params", ¶ms);
201 v->Visit(
"body", &body);
204 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.FunctionPattern";
236 v->Visit(
"var", &var);
237 v->Visit(
"value", &value);
238 v->Visit(
"body", &body);
241 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.LetPattern";
271 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.TuplePattern";
291 v->Visit(
"tuple", &tuple);
292 v->Visit(
"index", &index);
295 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.TupleGetItemPattern";
304 v->Visit(
"cond", &cond);
305 v->Visit(
"true_branch", &true_branch);
306 v->Visit(
"false_branch", &false_branch);
309 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.IfPattern";
337 v->Visit(
"left", &left);
338 v->Visit(
"right", &right);
341 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.AltPattern";
361 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.WildcardPattern";
385 v->Visit(
"pattern", &pattern);
386 v->Visit(
"type", &type);
389 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.TypePattern";
414 v->Visit(
"pattern", &pattern);
415 v->Visit(
"shape", &shape);
418 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.ShapePattern";
443 v->Visit(
"pattern", &pattern);
444 v->Visit(
"dtype", &dtype);
447 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.DataTypePattern";
472 v->Visit(
"pattern", &pattern);
473 v->Visit(
"attrs", &attrs);
476 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.AttrPattern";
505 v->Visit(
"parent", &parent);
506 v->Visit(
"path", &path);
507 v->Visit(
"child", &child);
510 static constexpr
const char*
_type_key =
"relay.dataflow_pattern.DominatorPattern";
540 #endif // TVM_RELAY_DATAFLOW_PATTERN_H_ Definition: dataflow_pattern.h:125
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:235
DFPattern IsExpr(const Expr &expr)
Syntatic Sugar for creating a ExprPattern.
DFPattern path
The path.
Definition: dataflow_pattern.h:500
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:504
A pattern which matches a literal expression.
Definition: dataflow_pattern.h:98
DFPattern var
The variable we bind to.
Definition: dataflow_pattern.h:229
Pattern for Types.
Definition: dataflow_pattern.h:435
int index
which value to get
Definition: dataflow_pattern.h:288
Bool operator||(const Bool &a, bool b)
Definition: expr.h:337
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:336
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:409
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:380
Relay expression language.
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:138
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:36
Pattern for Relay Expression.
Definition: dataflow_pattern.h:81
Definition: dataflow_pattern.h:299
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:384
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:359
Definition: dataflow_pattern.h:319
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:86
Definition: dataflow_pattern.h:144
DFPattern IsConstant()
Syntatic Sugar for creating a ConstantPattern.
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:438
A binding of a sub-network.
Definition: dataflow_pattern.h:226
Dominated Graph Pattern Pattern for fuzzy subgraphs where all outputs of the parent are used finally ...
Definition: dataflow_pattern.h:495
A pattern which matches a type in another pattern.
Definition: dataflow_pattern.h:425
DataType dtype
The type to match.
Definition: dataflow_pattern.h:440
Managed reference to DictAttrsNode.
Definition: attrs.h:227
base class of all object containers.
Definition: object.h:165
TVM_DECLARE_BASE_OBJECT_INFO(DFPatternNode, Object)
PrimExpr operator-(PrimExpr a, PrimExpr b)
subtraction operator
DictAttrs attrs
The attribute to match.
Definition: dataflow_pattern.h:469
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:413
Definition: dataflow_pattern.h:283
Pattern for Types.
Definition: dataflow_pattern.h:377
DFPattern tuple
The tuple Expression.
Definition: dataflow_pattern.h:286
A pattern which matches either of two patterns.
Definition: dataflow_pattern.h:348
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
DFPattern value
The value we bind var to.
Definition: dataflow_pattern.h:231
Base type of all dataflow patterns.
Definition: dataflow_pattern.h:40
Pattern for Alternate Expressions.
Definition: dataflow_pattern.h:329
Managed reference to FunctionNode.
Definition: dataflow_pattern.h:212
String name
The name of the Var (optional).
Definition: dataflow_pattern.h:114
Runtime primitive data type.
Definition: data_type.h:41
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:119
DFPattern left
The left optional pattern.
Definition: dataflow_pattern.h:332
Pattern for Attributes.
Definition: dataflow_pattern.h:464
Array, container representing a contiguous sequence of ObjectRefs.
Definition: array.h:270
A pattern which matches a type in another pattern.
Definition: dataflow_pattern.h:396
A pattern which matches attributes in another pattern.
Definition: dataflow_pattern.h:483
A pattern which matches a type in another pattern.
Definition: dataflow_pattern.h:454
DFPattern right
The right optional pattern.
Definition: dataflow_pattern.h:334
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:168
CallPattern container.
Definition: dataflow_pattern.h:155
DFPattern body
The body of the let binding.
Definition: dataflow_pattern.h:233
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:303
DFPattern IsTuple(const Array< DFPattern > &fields)
Syntatic Sugar for creating a TuplePattern.
Reference to string objects.
Definition: string.h:129
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:199
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:1608
Managed reference to RelayExprNode.
Definition: expr.h:177
Container for Constant.
Definition: dataflow_pattern.h:136
#define TVM_DEFINE_OBJECT_REF_METHODS(TypeName, ParentType, ObjectName)
Definition: object.h:706
tvm::Array< DFPattern > fields
the fields of the tuple
Definition: dataflow_pattern.h:267
Managed reference to dataflow patterns.
Definition: dataflow_pattern.h:50
Definition: dataflow_pattern.h:313
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:290
Var var(std::string name_hint, DataType t=DataType::Int(32))
Construct a new Var expression.
Base class of all object reference.
Definition: object.h:504
#define TVM_DEFINE_OBJECT_REF_COW_METHOD(ObjectName)
Define CopyOnWrite function in an ObjectRef.
Definition: object.h:778
Expr expr
The expression to match.
Definition: dataflow_pattern.h:84
const String & name_hint() const
Definition: dataflow_pattern.h:117
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:442
DFPattern IsWildcard()
Syntatic Sugar for creating a WildcardPattern.
A pattern which matches anything.
Definition: dataflow_pattern.h:368
PrimExpr operator*(PrimExpr a, PrimExpr b)
multiplication operator
Container for Var.
Definition: dataflow_pattern.h:109
Tuple container.
Definition: dataflow_pattern.h:264
#define TVM_DECLARE_FINAL_OBJECT_INFO(TypeName, ParentType)
helper macro to declare type information in a final class.
Definition: object.h:664
Definition: dataflow_pattern.h:177
Pattern for Shapes.
Definition: dataflow_pattern.h:406
Type type
The type to match.
Definition: dataflow_pattern.h:382
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:269
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:1235
DFPattern pattern
The pattern.
Definition: dataflow_pattern.h:467
PrimExpr operator/(PrimExpr a, PrimExpr b)
division operator
Managed reference to TypeNode.
Definition: type.h:93
DFPattern IsTupleGetItem(const DFPattern tuple, int index=-1)
Syntatic Sugar for creating a TupleGetItemPattern.
DFPattern true_branch
Definition: dataflow_pattern.h:301
A pattern which matches a variable length dominator path.
Definition: dataflow_pattern.h:517
Array< PrimExpr > shape
The type to match.
Definition: dataflow_pattern.h:411
Definition: dataflow_pattern.h:275
DFPattern op
The operator(function) being invoked.
Definition: dataflow_pattern.h:163
Let binding that binds a local var.
Definition: dataflow_pattern.h:248
DFPattern IsOp(const String &op_name)
Syntatic Sugar for creating a ExprPattern base on an Op.
Relay Function container.
Definition: dataflow_pattern.h:187
DFPattern child
The child.
Definition: dataflow_pattern.h:502
Wildcard Pattern.
Definition: dataflow_pattern.h:357
tvm::Array< relay::DFPattern > args
The arguments(inputs) of the call.
Definition: dataflow_pattern.h:166
PrimExpr operator+(PrimExpr a, PrimExpr b)
add operator
DFPattern parent
The parent.
Definition: dataflow_pattern.h:498
static constexpr const char * _type_key
Definition: dataflow_pattern.h:42
DFPattern IsVar(const String &name)
Syntatic Sugar for creating a VarPattern with a name.
DFPattern body
The expression which represents the computation of the function, the expression may reference the par...
Definition: dataflow_pattern.h:197
tvm::Array< DFPattern > params
Function parameters.
Definition: dataflow_pattern.h:190
void VisitAttrs(tvm::AttrVisitor *v)
Definition: dataflow_pattern.h:471