code: def _optimizable_tail_call(op, block):
      # A tail call is OK if no translation of the value is needed.  This requires
      # the function being tail-called to write its result into the same variable as
      # the caller's caller expects, which we check here.  Generally, this will tend
      # to happen with self-tail-calls.
      return (
          _is_indirect_return_op(block.terminator)
          and op.vars_out == op.function.vars_out
      )
  
imports: import collections
  from tensorflow_probability.python.experimental.auto_batching import instructions
  from tensorflow_probability.python.experimental.auto_batching import liveness
label_desc: Use image node_id 5 for calling a global function with example usage: _optimizable_tail_call(op, block) and returns: unknown