code: def copy_luts():
      """A scheduler that copies LUTs to SHRAM.
  
      Returns
      -------
      planner : callable
          The planning function.
      """
  
      def _planner(te_graph, const_dict, sch):
          planned = set()  # type: ignore
  
          def _visit(tensor, reader, lut):
              if tensor not in planned:
                  planned.add(tensor)
                  if (
                      isinstance(tensor.op, tvm.te.PlaceholderOp)
                      and tensor == lut
                  ):
                      index = list(te_graph.inputs).index(tensor)
                      if index in const_dict:
                          sch.cache_read(tensor, "local", [reader])
  
                  elif isinstance(tensor.op, tvm.te.ComputeOp):
                      if "lut" in tensor.op.attrs.keys():
                          lut = tensor.op.attrs["lut"]
                      for input_tensor in tensor.op.input_tensors:
                          _visit(input_tensor, tensor, lut)
  
          for output_tensor in te_graph.outputs:
              _visit(output_tensor, None, None)
  
      return _planner
  
file_path: tvm/python/tvm/relay/backend/contrib/ethosu/tir/scheduler.py
imports: import tvm
  from tvm.contrib.ethosu.cascader import Propagator
label_desc: Use image node_id 5 for calling a global function with example usage: copy_luts() and returns: _planner