class_docstr: When we observe ``pad -> transpose -> conv``, we move the ``pad`` to be next to ``conv``.
  This allows us to meld ``pad + conv`` if possible.
  
  .. code-block::
  
      Given:
          %1 = pad(%0, ...)
          %2 = transpose(%1, ...)
          %3 = conv(%2, ...)
          ...
  
      Result:
          %1.a = transpose(%0, ...)
          $2.a = pad(%1.a, ...)
          %3 = conv(%2.a)
          ...
class_docstr_tok: ["When","we","observe","``","pad","-",">","transpose","-",">","conv","``",",","we","move","the","``","pad","``","to","be","next","to","``","conv","``",".","This","allows","us","to","meld","``","pad","+","conv","``","if","possible",".","..","code-block",":",":","Given",":","%","1","=","pad","(","%","0",",","...",")","%","2","=","transpose","(","%","1",",","...",")","%","3","=","conv","(","%","2",",","...",")","...","Result",":","%","1.a","=","transpose","(","%","0",",","...",")","$","2.a","=","pad","(","%","1.a",",","...",")","%","3","=","conv","(","%","2.a",")","..."]
code: def _pad_conv_connect_block(self, block):
      fusion_status = False
      for op in list(block.operations):
          for b in op.blocks:
              block_changed = True
              while block_changed:
                  block_changed = self._pad_conv_connect_block(b)
  
          if op.op_type != "pad":
              continue
  
          transpose_ops = self._match_pattern(op)
          if transpose_ops is not None:
              fusion_status = self._try_to_transform(
                  op, transpose_ops, block
              )
              # has to break as the downstream iterator is affected.
              if fusion_status:
                  return fusion_status
      return fusion_status
  
imports: import copy
  import numpy
  from coremltools import _logger
  from coremltools.converters.mil.mil import Block
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Operation, types
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import _check_child_op_type, _check_no_output_connection, block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
  from coremltools.converters.mil.mil.types.symbolic import any_symbolic
label_desc: Use image node_id 4 for calling the fuse_pad_conv obj's underlying member method code with example usage: obj._pad_conv_connect_block(block) and returns: fusion_status, fusion_status