class_docstr: Add a flag on each function that updates a global variable.
class_docstr_tok: ["Add","a","flag","on","each","function","that","updates","a","global","variable","."]
code: def run(self, node):
      result = super(GlobalEffects, self).run(node)
      keep_going = True
      while keep_going:
          keep_going = False
          for function in result:
              if function.global_effect:
                  for pred in self.result.predecessors(function):
                      if not pred.global_effect:
                          keep_going = pred.global_effect = True
      self.result = {f.func for f in result if f.global_effect}
      return self.result
  
imports: from pythran.analyses.aliases import Aliases
  from pythran.analyses.intrinsics import Intrinsics
  from pythran.analyses.global_declarations import GlobalDeclarations
  from pythran.passmanager import ModuleAnalysis
  from pythran.tables import MODULES
  from pythran.graph import DiGraph
  import pythran.intrinsic
  import gast
  from functools import reduce
label_desc: Use image node_id 3 for calling the GlobalEffects obj's underlying member method code with example usage: obj.run(node) and returns: self