| Server IP : 93.86.61.54 / Your IP : 216.73.216.60 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/python3/dist-packages/pythran/analyses/ |
Upload File : |
""" 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)
))