masahi commented on code in PR #14548:
URL: https://github.com/apache/tvm/pull/14548#discussion_r1162030883


##########
python/tvm/relax/transform/legalize_ops/index.py:
##########
@@ -59,3 +60,39 @@ def _strided_slice(bb: BlockBuilder, call: Call) -> Expr:
         call.attrs.axes,
         slice_mode="end",
     )
+
+
+@register_legalize("relax.dynamic_strided_slice")
+def _dynamic_strided_slice(bb: BlockBuilder, call: Call) -> Expr:
+    # 1. Insert shape function
+    output_shape = bb.normalize(
+        bb.call_te(
+            topi.shape_func_dynamic_strided_slice,
+            call.args[0],
+            call.args[1],
+            call.args[2],
+            call.args[3],

Review Comment:
   Since there is no standard API for shape func, and there is no 
"registration" for shape funcs specifically, I think it is better not to 
introduce a rigid convention, in particular shape funcs be implemented in topi 
/ c++. 
   
   Since they are only used by the legalizer, I view shape funcs in Relax 
simply as implementation details, one-off function. So developers should be 
able to express data-dependent output shape computation logic in any way in 
anywhere, including TVMScript.    



-- 
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