code: def test_ssa_across_entire_module():
      """The host and device functions should not share TIR vars
  
      Any arguments that are passed from the host to the device should
      be in terms of independent TIR variables.
      """
  
      @I.ir_module
      class before:
          @T.prim_func
          def main():
              T.func_attr(
                  {
                      "global_symbol": "main",
                      "target": T.target("cuda", host="llvm"),
                  }
              )
              for i in range(16):
                  T.attr(0, "device_scope", 0)
                  for j in range(16):
                      T.evaluate(i)
  
      after = tvm.ir.transform.Sequential(
          [
              tvm.tir.transform.AnnotateDeviceRegions(),
              tvm.tir.transform.SplitHostDevice(),
              tvm.tir.transform.LowerDeviceKernelLaunch(),
          ]
      )(before)
      loop_var = after["main"].body.loop_var
      param_var = after["main_kernel"].params[0]
  
      assert not loop_var.same_as(param_var)
  
imports: import tvm
  from tvm import te
  import tvm.testing
  from tvm.script import tir, ir
label_desc: Use image node_id 2 for calling a global function with example usage: test_ssa_across_entire_module() without return types