예제 #1
0
파일: passes.py 프로젝트: OnlySang/pythran
 def __init__(self, pm, name, ctx, lambda_functions, imports):
     Transformation.__init__(self)
     self.passmanager = pm
     self.ctx = ctx
     self.prefix = name
     self.lambda_functions = lambda_functions
     self.imports = imports
     self.global_declarations = pm.gather(GlobalDeclarations, ctx.module)
예제 #2
0
 def generic_visit(self, node):
     if node in self.constant_expressions:
         try:
             fake_node = ast.Expression(
                 node.value if isinstance(node, ast.Index) else node)
             code = compile(fake_node, '<constant folding>', 'eval')
             value = eval(code, self.env)
             new_node = self.to_ast(value)
             if (isinstance(node, ast.Index)
                     and not isinstance(new_node, ast.Index)):
                 new_node = ast.Index(new_node)
             return new_node
         except Exception:  # as e:
             #print ast.dump(node)
             #print 'error in constant folding: ', e
             return Transformation.generic_visit(self, node)
     else:
         return Transformation.generic_visit(self, node)
예제 #3
0
 def __init__(self):
     Transformation.__init__(self, NormalizeTuples,
                             OptimizableComprehension)
예제 #4
0
 def __init__(self):
     Transformation.__init__(self, OptimizableGenexp)
예제 #5
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self):
     Transformation.__init__(self, Locals, Globals)
예제 #6
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self):
     Transformation.__init__(self)
     self.imports = set()
     self.symbols = dict()
예제 #7
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self):
     Transformation.__init__(self, Identifiers)
예제 #8
0
파일: openmp.py 프로젝트: gnemoug/pythran
 def __init__(self):
     Transformation.__init__(self)
     # Remap self.visit_XXXX() to self.attach_data() generic method
     for s in GatherOMPData.statements:
         setattr(self, "visit_" + s, lambda node_: self.attach_data(node_))
     self.current = list()
예제 #9
0
 def __init__(self):
     Transformation.__init__(self, ConstantExpressions)
예제 #10
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self):
     Transformation.__init__(self, Globals)
     self.imports = set()
예제 #11
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self, pm, name, ctx):
     Transformation.__init__(self)
     self.passmanager = pm
     self.ctx = ctx
     self.prefix = name
     self.lambda_functions = list()
예제 #12
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self, pm, ctx):
     Transformation.__init__(self)
     self.ctx = ctx
     self.passmanager = pm
예제 #13
0
파일: openmp.py 프로젝트: Midhrin/pythran
 def __init__(self):
     Transformation.__init__(self)
     for s in GatherOMPData.statements:
         setattr(self, "visit_" + s, lambda node_: self.attach_data(node_))
     self.current = list()
예제 #14
0
파일: passes.py 프로젝트: OnlySang/pythran
 def __init__(self, pm, ctx):
     Transformation.__init__(self)
     self.ctx = ctx
     self.passmanager = pm
     self.global_declarations = pm.gather(GlobalDeclarations, ctx.module)
예제 #15
0
파일: typing.py 프로젝트: mac0ne/pythran
 def __init__(self):
     Transformation.__init__(self, TypeDependencies,
                             OrderedGlobalDeclarations)
예제 #16
0
 def __init__(self):
     Transformation.__init__(self, NormalizeTuples,
                             PotentialIterator)
예제 #17
0
 def __init__(self):
     Transformation.__init__(self, PotentialIterator, Aliases)
예제 #18
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self):
     self.renamings = dict()
     Transformation.__init__(self, Identifiers)
예제 #19
0
파일: passes.py 프로젝트: kynan/pythran
 def __init__(self):
     self.counter = 0
     Transformation.__init__(self)
예제 #20
0
파일: openmp.py 프로젝트: mac0ne/pythran
 def __init__(self):
     Transformation.__init__(self)
     # Remap self.visit_XXXX() to self.attach_data() generic method
     for s in GatherOMPData.statements:
         setattr(self, "visit_" + s, lambda node_: self.attach_data(node_))
     self.current = list()