%PDF- %PDF-
| Direktori : /lib/python3/dist-packages/pythran/analyses/ |
| Current File : //lib/python3/dist-packages/pythran/analyses/parallel_maps.py |
""" ParallelMaps detects parallel map(...). """
from pythran.analyses.aliases import Aliases
from pythran.analyses.pure_expressions import PureExpressions
from pythran.passmanager import ModuleAnalysis
from pythran.tables import MODULES
class ParallelMaps(ModuleAnalysis):
"""Yields the est of maps that could be parallel."""
def __init__(self):
self.result = set()
super(ParallelMaps, self).__init__(PureExpressions, Aliases)
def visit_Call(self, node):
if all(alias == MODULES['builtins']['map']
for alias in self.aliases[node.func]):
if all(f in self.pure_expressions
for f in self.aliases[node.args[0]]):
self.result.add(node)
def display(self, data):
for node in data:
print("I:", "{0} {1}".format(
"call to the `map' intrinsic could be parallel",
"(line {0})".format(node.lineno)
))