class_docstr: Remove ops that have no effect.
  
  .. code-block::
  
      Given:
          %1 (1, 96, 128, 64, fp32) = ...
          %2 (1, 96, 128, 64, fp32) = reshape(%1)
          ...
          %3 (1, 96, 128, 64, fp32) = add(%2, constant)
          ...
  
      Result:
          %1 (1, 96, 128, 64, fp32) = ...
          %3 (1, 96, 128, 64, fp32) = add(%1, constant)
      ...
code: def apply(self, prog):
      for f in prog.functions.values():
          self._noop_elimination_block_wrapper(f)
  
file_path: coremltools/coremltools/converters/mil/mil/passes/defs/cleanup/noop_elimination.py
imports: import numpy
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.helper import block_context_manager
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
label_desc: Use image node_id 1 for calling the noop_elimination obj's underlying member method code with example usage: obj.apply(prog) without return types