Hzfengsy opened a new pull request, #14276:
URL: https://github.com/apache/tvm/pull/14276

   The current cross-function calls in TVMScript will cause PyLint warnings, 
since the GlobalVar will be marked as undefined vars, e.g.:
   
   ```python
   @I.ir_module
   class TestModule:
       @T.prim_func
       def tir_func(
           x: T.Buffer((T.int64(128),), "float32"), y: 
T.Buffer((T.int64(128),), "float32")
       ):
           T.evaluate(0)
   
       @R.function
       def foo(x: R.Tensor((128,), "float32")) -> R.Tensor((128,), "float32"):
           gv0 = R.call_tir(tir_func, x, R.Tensor((128,), dtype="float32"))  # 
<= `tir_func` is not defined in Python syntax.
           return gv0
   ```
   
   This PR changes the behavior into `TestModule.tir_func` instead of direct 
`tir_func`
   ```python
   @I.ir_module
   class TestModule:
       @T.prim_func
       def tir_func(
           x: T.Buffer((T.int64(128),), "float32"), y: 
T.Buffer((T.int64(128),), "float32")
       ):
           T.evaluate(0)
   
       @R.function
       def foo(x: R.Tensor((128,), "float32")) -> R.Tensor((128,), "float32"):
           cls = TestModule  # Use `cls` to refer the current Module
           gv0 = R.call_tir(cls.tir_func, x, R.Tensor((128,), dtype="float32"))
           return gv0
   ```
   
   NOTE: It's a breaking change, the old style is deprecated.
   
   Additionally, this PR contains the following minor fixes:
   - mark `R.function` as staticmethod as what we do for `T.prim_func`
   - make `I`, `R`, `T`, `cls` be the builtin keywords for the printer
   - define names for functions, modules to prevent naming conflict
   - checking the var names is valid via regex expression
   - fix typos
   
   cc @tqchen 


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