code: def run_after_pass(self, mod, info):
      # Pop out the latest recorded pass.
      name_before, op_to_cnt_before = self._op_cnt_before_stack.pop()
      assert (
          name_before == info.name
      ), "name_before: {}, info.name: {} doesn't match".format(
          name_before, info.name
      )
      cur_depth = len(self._op_cnt_before_stack)
      op_to_cnt_after = self._count_nodes(mod)
      op_diff = self._diff(op_to_cnt_after, op_to_cnt_before)
      # only record passes causing differences.
      if op_diff:
          self._op_diff.append((cur_depth, info.name, op_diff))
  
imports: import tvm
  import tvm.relay
  from tvm.relay.testing import resnet
  from tvm.contrib.download import download_testdata
  from tvm.relay.build_module import bind_params_by_name
  from tvm.ir.instrument import PassTimingInstrument, pass_instrument
  from pprint import pprint
label_desc: Use image node_id 5 for calling the RelayCallNodeDiffer obj's underlying member method code with example usage: obj.run_after_pass(mod, info) without return types