class_docstr: A pass to handle the situation when nn.pad operator has
  more than one qnn.conv2d consumer.
  
           pad
         /            Conv2D   Conv2D
  
  In this case, because of the peculiarities of pattern parsing,
  conv2d does not get into the composite for the NPU.
  Therefore, pads are added so that each has only one consumer.
code: def __init__(self):
      super().__init__()
      # a set to record hashes of an pads which already have one qnn.conv2d consumer
      self.hashes = set()
  
imports: from collections import defaultdict
  from typing import List, Callable
  from ethosu.vela import api
  import tvm
  from tvm import relay
  from tvm.relay.backend.contrib.ethosu.tir.compiler import LowerToTIR
  from tvm.relay.backend.contrib.ethosu.tir.scheduler import copy_constants
  from tvm.contrib.ethosu.cascader import cascade, EthosuDeviceConfig, CascaderOptions, MemoryRegion, extract_memory_info
  from tvm.relay.backend.contrib.ethosu.legalize import LegalizeEthosU
  from tvm.relay.backend.contrib.ethosu import tir_to_cs_translator, util, vela_api
  from tvm.relay.expr_functor import ExprMutator, ExprVisitor, Call
  from tvm.relay import expr
  from tvm.relay.backend.contrib.ethosu.op import op_attrs
  from tvm.relay.backend.contrib.ethosu import op
  from .None import _ffi_api
label_desc: Use image node_id 1 to create a new PadsWithMultipleConsumersReplicator object from inherited base classes: ExprMutator with example: obj = PadsWithMultipleConsumersReplicator()