class_docstr: Transforms control flow structures like loops an conditionals.
class_docstr_tok: ["Transforms","control","flow","structures","like","loops","an","conditionals","."]
code: def _get_block_composite_vars(self, modified, live_in):
      # The scope variables corresponding to composite symbols (e.g. `self.x`).
      composite_scope_vars = []
      for s in modified:
          if not s.is_composite():
              continue
          # Mutations made to objects created inside the scope will appear as writes
          # to composite symbols. Because these mutations appear as modifications
          # made to composite symbols, we check whether the composite's parent is
          # actually live into the scope.
          # Example:
          #   while cond:
          #     x = Foo()
          #     x.foo = 2 * x.foo  # x.foo is live into the scope, but x is not.
          #
          # Note that some parents might not be symbols - for example, in x['foo'],
          # 'foo' is a parent, but it's a literal, not a symbol. We don't check the
          # liveness of literals.
          support_set_symbols = tuple(
              sss for sss in s.support_set if sss.is_symbol()
          )
          if not all(sss in live_in for sss in support_set_symbols):
              continue
          composite_scope_vars.append(s)
      return frozenset(composite_scope_vars)
  
imports: import gast
  from nvidia.dali._autograph.core import converter
  from nvidia.dali._autograph.lang import directives
  from nvidia.dali._autograph.pyct import anno
  from nvidia.dali._autograph.pyct import cfg
  from nvidia.dali._autograph.pyct import origin_info
  from nvidia.dali._autograph.pyct import parser
  from nvidia.dali._autograph.pyct import qual_names
  from nvidia.dali._autograph.pyct import templates
  from nvidia.dali._autograph.pyct.static_analysis import activity
  from nvidia.dali._autograph.pyct.static_analysis import annos
  from nvidia.dali._autograph.pyct.static_analysis import liveness
  from nvidia.dali._autograph.pyct.static_analysis import reaching_definitions
  from nvidia.dali._autograph.pyct.static_analysis import reaching_fndefs
label_desc: Use image node_id 8 for calling the ControlFlowTransformer obj's underlying member method code with example usage: obj._get_block_composite_vars(modified, live_in) and returns: frozenset