コード例 #1
0
ファイル: verify.py プロジェクト: Abramovuch/parakeet
 def __init__(self, fn):
   SyntaxVisitor.__init__(self)
   
   self.fn = fn
   self.call_stack.append(fn)
   self.bound = set(fn.arg_names)
   self.seen_return = False 
コード例 #2
0
ファイル: verify.py プロジェクト: iskandr/parakeet
    def __init__(self, fn):
        SyntaxVisitor.__init__(self)

        self.fn = fn
        self.call_stack.append(fn)
        self.bound = set(fn.arg_names)
        self.seen_return = False
コード例 #3
0
ファイル: licm.py プロジェクト: lucciano/parakeet
 def visit_While(self, stmt):
   self.volatile_vars.push(stmt.merge.keys())
   SyntaxVisitor.visit_While(self, stmt)
   if self.does_block_return(stmt.body):
     self.block_contains_return()
   volatile_in_scope = self.volatile_vars.pop()
   self.mark_safe_assignments(stmt.body, volatile_in_scope)
コード例 #4
0
ファイル: usedef.py プロジェクト: iskandr/parakeet
 def visit_block(self, stmts, branch_label = None):
   self.push_scope()
   if branch_label is not None:
     self.push_scope(branch_label)
   SyntaxVisitor.visit_block(self, stmts)
   if branch_label is not None:
     self.pop_scope()
   self.pop_scope()
コード例 #5
0
ファイル: usedef.py プロジェクト: Tillsten/parakeet
 def visit_block(self, stmts, branch_label = None):
   self.push_scope()
   if branch_label is not None:
     self.push_scope(branch_label)
   SyntaxVisitor.visit_block(self, stmts)
   if branch_label is not None:
     self.pop_scope()
   self.pop_scope()
コード例 #6
0
ファイル: licm.py プロジェクト: lucciano/parakeet
 def visit_If(self, stmt):
   self.volatile_vars.push(stmt.merge.keys())
   self.visit_expr(stmt.cond)
   SyntaxVisitor.visit_If(self, stmt)
   if self.does_block_return(stmt.true) or self.does_block_return(stmt.false):
     self.mark_curr_block_returns()
   volatile_in_scope = self.volatile_vars.pop()
   self.mark_safe_assignments(stmt.true, volatile_in_scope)
   self.mark_safe_assignments(stmt.false, volatile_in_scope)
コード例 #7
0
ファイル: licm.py プロジェクト: lucciano/parakeet
 def __init__(self):
   SyntaxVisitor.__init__(self)
   self.mutable_types = None
   self.volatile_vars = ScopedSet()
   self.depends_on = {}
   self.safe_to_move = set([])
   self.curr_block_id = None
   self.block_contains_return = set([])
   self.may_alias = None
コード例 #8
0
ファイル: verify.py プロジェクト: Tillsten/parakeet
 def visit_expr(self, expr):
   assert expr is not None
   assert expr.type is not None, \
     "Missing type annotation on %s" % expr 
   SyntaxVisitor.visit_expr(self, expr)
コード例 #9
0
ファイル: contains_adverbs.py プロジェクト: Tillsten/parakeet
 def visit_expr(self, expr):
   if isinstance(expr, Adverb):
     raise self.Yes()
   SyntaxVisitor.visit_expr(self, expr)
コード例 #10
0
 def __init__(self):
     SyntaxVisitor.__init__(self)
     self.mutable_types = set([])
コード例 #11
0
 def visit_fn(self, fn):
   escape_info = escape_analysis(fn, self.fresh_alloc_args)
   self.may_alias = escape_info.may_alias 
   SyntaxVisitor.visit_fn(self, fn)
   self.writes = set([])
コード例 #12
0
ファイル: contains.py プロジェクト: iskandr/parakeet
 def visit_stmt(self, stmt):
     if stmt.__class__ is ParFor:
         raise Yes()
     SyntaxVisitor.visit_stmt(self, stmt)
コード例 #13
0
ファイル: verify.py プロジェクト: lucciano/parakeet
 def __init__(self, fn):
   SyntaxVisitor.__init__(self)
   self.fn = fn
   self.bound = set(fn.arg_names)
コード例 #14
0
ファイル: collect_vars.py プロジェクト: iskandr/parakeet
 def __init__(self):
     SyntaxVisitor.__init__(self)
     self.bindings = {}
コード例 #15
0
 def __init__(self):
   SyntaxVisitor.__init__(self)
   self.mutable_types = set([])
コード例 #16
0
 def __init__(self):
     SyntaxVisitor.__init__(self)
     self.live_vars = set([])
コード例 #17
0
 def visit_ForLoop(self, stmt):
     self.visit_Var(stmt.var)
     SyntaxVisitor.visit_ForLoop(self, stmt)
コード例 #18
0
    def __init__(self):

        SyntaxVisitor.__init__(self)
        self.counts = {}
コード例 #19
0
ファイル: contains.py プロジェクト: iskandr/parakeet
 def visit_expr(self, expr):
     if isinstance(expr, Adverb):
         raise Yes()
     SyntaxVisitor.visit_expr(self, expr)
コード例 #20
0
ファイル: contains.py プロジェクト: iskandr/parakeet
 def visit_expr(self, expr):
     if isinstance(expr, (UntypedFn, TypedFn, Closure)) or isinstance(
             expr.type, (FnT, ClosureT)):
         raise Yes()
     SyntaxVisitor.visit_expr(expr)
コード例 #21
0
ファイル: shape_inference.py プロジェクト: cournape/parakeet
 def visit_expr(self, expr):
   abstract_shape = SyntaxVisitor.visit_expr(self, expr)
   assert abstract_shape is not None, \
       "Unsupported expression in shape inference: %s" % expr.node_type()
   return abstract_shape
コード例 #22
0
ファイル: collect_vars.py プロジェクト: Abramovuch/parakeet
 def __init__(self):
   SyntaxVisitor.__init__(self)
   self.bindings = {}
コード例 #23
0
ファイル: usedef.py プロジェクト: iskandr/parakeet
 def visit_fn(self, fn):
   for name in fn.arg_names:
     self.created_on[name] = 0
   SyntaxVisitor.visit_fn(self, fn)
コード例 #24
0
 def __init__(self):
     SyntaxVisitor.__init__(self)
     self.ranges = {}
     self.old_values = ScopedDict()
     self.old_values.push()
コード例 #25
0
ファイル: licm.py プロジェクト: lucciano/parakeet
 def visit_block(self, stmts):
   self.curr_block_id = id(stmts)
   SyntaxVisitor.visit_block(self, stmts)
コード例 #26
0
ファイル: verify.py プロジェクト: lucciano/parakeet
 def visit_expr(self, expr):
   assert expr is not None
   SyntaxVisitor.visit_expr(self, expr)
コード例 #27
0
ファイル: verify.py プロジェクト: iskandr/parakeet
 def visit_stmt(self, stmt):
     assert stmt is not None, "Statement missing, must be a compiler bug"
     SyntaxVisitor.visit_stmt(self, stmt)
コード例 #28
0
ファイル: licm.py プロジェクト: lucciano/parakeet
 def visit_fn(self, fn):
   self.volatile_vars.push(fn.arg_names)
   self.may_alias = may_alias(fn)
   SyntaxVisitor.visit_fn(self, fn)
   return self.safe_to_move
コード例 #29
0
ファイル: verify.py プロジェクト: tlevine/parakeet
 def visit_expr(self, expr):
   assert expr is not None, "Expression missing, must be a compiler bug"
   assert expr.type is not None, \
     "Missing type annotation on %s" % expr 
   SyntaxVisitor.visit_expr(self, expr)
コード例 #30
0
ファイル: contains.py プロジェクト: waytai/parakeet
 def visit_expr(self, expr):
   if isinstance(expr, (UntypedFn, TypedFn, Closure)) or isinstance(expr.type, (FnT, ClosureT)):
     raise Yes()
   SyntaxVisitor.visit_expr(expr)
コード例 #31
0
ファイル: verify.py プロジェクト: iskandr/parakeet
 def visit_expr(self, expr):
     assert expr is not None, "Expression missing, must be a compiler bug"
     assert expr.type is not None, \
       "Missing type annotation on %s" % expr
     SyntaxVisitor.visit_expr(self, expr)
コード例 #32
0
ファイル: verify.py プロジェクト: tlevine/parakeet
 def visit_stmt(self, stmt):
   assert stmt is not None, "Statement missing, must be a compiler bug"
   SyntaxVisitor.visit_stmt(self, stmt)
コード例 #33
0
ファイル: usedef.py プロジェクト: iskandr/parakeet
 def visit_stmt(self, stmt):
   self.inc_counter()
   self.stmt_paths[id(stmt)] = self.curr_path()
   SyntaxVisitor.visit_stmt(self, stmt)
コード例 #34
0
 def __init__(self):
   SyntaxVisitor.__init__(self)
   self.ranges = {} 
   self.old_values = ScopedDict()
   self.old_values.push()
コード例 #35
0
ファイル: offset_analysis.py プロジェクト: Tillsten/parakeet
 def visit_fn(self, fn):
   SyntaxVisitor.visit_fn(self, fn)
   return self.known_offsets
コード例 #36
0
ファイル: contains.py プロジェクト: waytai/parakeet
 def visit_stmt(self, stmt):
   if stmt.__class__ is ParFor:
     raise Yes()
   SyntaxVisitor.visit_stmt(self, stmt)
コード例 #37
0
ファイル: usedef.py プロジェクト: Tillsten/parakeet
 def visit_fn(self, fn):
   for name in fn.arg_names:
     self.created_on[name] = 0
   SyntaxVisitor.visit_fn(self, fn)
コード例 #38
0
ファイル: contains_calls.py プロジェクト: Tillsten/parakeet
 def visit_stmt(self, stmt):
   SyntaxVisitor.visit_stmt(self, stmt)
コード例 #39
0
ファイル: usedef.py プロジェクト: Tillsten/parakeet
 def visit_stmt(self, stmt):
   self.inc_counter()
   self.stmt_paths[id(stmt)] = self.curr_path()
   SyntaxVisitor.visit_stmt(self, stmt)
コード例 #40
0
ファイル: verify.py プロジェクト: Tillsten/parakeet
 def visit_stmt(self, stmt):
   assert stmt is not None
   SyntaxVisitor.visit_stmt(self, stmt)
コード例 #41
0
ファイル: use_analysis.py プロジェクト: cournape/parakeet
 def __init__(self):
   
   SyntaxVisitor.__init__(self)
   self.counts = {}
コード例 #42
0
ファイル: shape_inference.py プロジェクト: cournape/parakeet
 def visit_ForLoop(self, stmt):
   self.value_env[stmt.var.name] = any_scalar
   SyntaxVisitor.visit_ForLoop(self, stmt)
コード例 #43
0
ファイル: use_analysis.py プロジェクト: cournape/parakeet
 def visit_ForLoop(self, stmt):
   self.visit_Var(stmt.var)
   SyntaxVisitor.visit_ForLoop(self, stmt)
コード例 #44
0
ファイル: collect_vars.py プロジェクト: Abramovuch/parakeet
 def __init__(self):
   SyntaxVisitor.__init__(self)
   self.var_names = set([])
コード例 #45
0
ファイル: use_analysis.py プロジェクト: cournape/parakeet
 def __init__(self):
   SyntaxVisitor.__init__(self)
   self.live_vars = set([])
コード例 #46
0
 def visit_fn(self, fn):
   escape_info = escape_analysis(fn, self.fresh_alloc_args)
   self.may_alias = escape_info.may_alias 
   SyntaxVisitor.visit_fn(self, fn)
   self.writes = set([])
コード例 #47
0
ファイル: collect_vars.py プロジェクト: iskandr/parakeet
 def __init__(self):
     SyntaxVisitor.__init__(self)
     self.var_names = set([])