code: def _get_stack(self, tfssa, root="main"):
      # We're trying to get a order of how to loop through the graphs.
      # This is NOT necessarily a DAG.
      dep = {x: [] for x in tfssa.functions}
      for fname in tfssa.functions:
          for node in tfssa.functions[fname].graph.values():
              func_x, func_y = None, None
  
              if node.op == "while":
                  func_x = node.attr["body_function"]
                  func_y = node.attr["cond_function"]
  
              if func_x and fname not in dep[func_x]:
                  dep[func_x].append(fname)
              if func_y and fname not in dep[func_y]:
                  dep[func_y].append(fname)
  
      assert len(dep[root]) == 0
      graph_stack = simple_topsort(dep)
  
      return graph_stack
  
imports: from coremltools import _logger
  from coremltools.converters._profile_utils import _profile
  from coremltools.converters.mil._deployment_compatibility import AvailableTarget
  from coremltools.converters.mil.input_types import ImageType, InputType, RangeDim
  from coremltools.converters.mil.input_types import Shape
  from coremltools.converters.mil.input_types import TensorType, _get_shaping_class
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Function, Program, get_new_symbol, types
  from coremltools.converters.mil.mil.types.symbolic import is_symbolic
  from coremltools.converters.mil.mil.var import Var
  from .._utils import get_output_names
  from .basic_graph_ops import simple_topsort
  from .convert_utils import convert_graph
label_desc: Use image node_id 3 for calling the TFConverter obj's underlying member method code with example usage: obj._get_stack(tfssa, root) and returns: graph_stack