| Server IP : 217.160.0.135 / Your IP : 216.73.217.85 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1074145052 ( 1074145052) PHP Version : 8.3.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /lib/python3/dist-packages/pythran/optimizations/__pycache__/ |
Upload File : |
�
cR�a� � �~ � d Z ddlmZ ddlmZmZmZ ddlmZ ddl m
Z
ddlmZ ddl
mZ ddlZ G d � d
e� � ZdS )z; LoopFullUnrolling fully unrolls loops with static bounds. � )�metadata)�HasBreak�HasContinue� NodeCount)�OMPDirective)�to_ast)�Transformation��deepcopyNc � � e Zd ZdZdZd� ZdS )�LoopFullUnrollinga%
Fully unroll loops with static bounds
>>> import gast as ast
>>> from pythran import passmanager, backend
>>> node = ast.parse('for j in [1,2,3]: i += j')
>>> pm = passmanager.PassManager("test")
>>> _, node = pm.apply(LoopFullUnrolling, node)
>>> print(pm.dump(backend.Python, node))
j = 1
i += j
j = 2
i += j
j = 3
i += j
>>> node = ast.parse('for j in (a,b): i += j')
>>> pm = passmanager.PassManager("test")
>>> _, node = pm.apply(LoopFullUnrolling, node)
>>> print(pm.dump(backend.Python, node))
j = a
i += j
j = b
i += j
>>> node = ast.parse('for j in {1}: i += j')
>>> pm = passmanager.PassManager("test")
>>> _, node = pm.apply(LoopFullUnrolling, node)
>>> print(pm.dump(backend.Python, node))
j = 1
i += j
>>> node = ast.parse('for j in builtins.enumerate("1"): j')
>>> pm = passmanager.PassManager("test")
>>> _, node = pm.apply(LoopFullUnrolling, node)
>>> print(pm.dump(backend.Python, node))
j = (0, '1')
j
i c �L � ����
�� t j �t � � r�S � � �� � t � fd��j D � � � � }t � fd��j D � � � � }|s|r�S � � t �� � }�fd��
d� �d� }t �j t j t j f� � rmt �j j � � �|�z }|t j k }|r=d� _ t% ����
fd�t'