sunggg commented on code in PR #14282:
URL: https://github.com/apache/tvm/pull/14282#discussion_r1137793773


##########
src/relax/op/op.cc:
##########
@@ -315,6 +315,32 @@ Expr MakeShapeOf(Expr expr) {
 
 TVM_REGISTER_GLOBAL("relax.op.shape_of").set_body_typed(MakeShapeOf);
 
+// tensor_to_shape
+
+StructInfo ReturnTensorToShapeStructInfo(const Call& call, const BlockBuilder& 
ctx) {
+  ICHECK(call->args.size() == 1);
+  ICHECK(call->args[0]->struct_info_.defined());
+  const auto* tsinfo = GetStructInfoAs<TensorStructInfoNode>(call->args[0]);
+  ICHECK(tsinfo && tsinfo->shape.defined());

Review Comment:
   To MatchCast and put them in the `ShapeExpr`.
   ```
   // define symbolic variables
   Array<PrimExpr> shape_var;
   for (int i = 0; i < sinfo->ndim; i++) {
       shape_var.push_back(tir::Var("x", DataType::Int(64)));
    }
   
   // bind symbolic variables to the shape tuple
   relax::Var var("y", ShapeStructInfo(shape_var));
   builder_->EmitNormalized(MatchCast(var, call, ShapeStructInfo(shape_var)));
   return ShapeExpr(shape_var);
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to