403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/pythran/optimizations/__pycache__/loop_full_unrolling.cpython-311.pyc
�

cR�a���~�dZddlmZddlmZmZmZddlmZddl	m
Z
ddlmZddl
mZddlZGd	�d
e��ZdS)z; LoopFullUnrolling fully unrolls loops with static bounds. �)�metadata)�HasBreak�HasContinue�	NodeCount)�OMPDirective)�to_ast)�Transformation��deepcopyNc��eZdZdZdZd�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
    ic	�L�����
��tj�t��r�S�����t	�fd��jD����}t	�fd��jD����}|s|r�S��t���}�fd��
d��d�}t�j	tjtjf��rmt�j	j���|�z}|tjk}|r=d�_t%����
fd�t'�j	j��D��g��St)tjtj�j	����dd	��}	t/t1|d
t3d
��i����}	n#t4$r�cYSwxYwt|	���|�z}|tjk}|rH	t%���
�fd�t'|	��D��g��}
d�_|
S#t4$r�cYSwxYw�S)Nc3�N�K�|]}��t|��V�� dS�N)�gatherr��.0�n�selfs  ��K/usr/lib/python3/dist-packages/pythran/optimizations/loop_full_unrolling.py�	<genexpr>z.LoopFullUnrolling.visit_For.<locals>.<genexpr>AsE�����,�,�����H�a�0�0�,�,�,�,�,�,�c3�N�K�|]}��t|��V�� dSr)rrrs  �rrz.LoopFullUnrolling.visit_For.<locals>.<genexpr>CsE�����+�+���{�{�;��2�2�+�+�+�+�+�+rc�^��tjt�j��g|d��g|zSr)�ast�Assignr�target)�elt�body�nodes  �r�unrollz+LoopFullUnrolling.visit_For.<locals>.unrollLs,����J���� 5� 5�6��T�B�B�C�d�J�Jrc�6�||dz
kr|St|��S)N�r
)r�irs   r�dcz'LoopFullUnrolling.visit_For.<locals>.dcOs ���A��E�z�z�����~�~�%rc�B�tt|dd��dd��S)N�func�attr)�getattr)rs r�getrangez-LoopFullUnrolling.visit_For.<locals>.getrangeUs ���7�1�f�d�3�3�V�T�B�B�BrTc
�N��g|]!\}}�|��j|�������"S�)r)rr$rr%�
elts_countr r!s   ����r�
<listcomp>z/LoopFullUnrolling.visit_For.<locals>.<listcomp>^sO���E�E�E� &��3�#�F�3���4�9�a��(D�(D�E�E�E�E�Erz<loop unrolling>�eval�builtinsc
�h��g|].\}}�t|����j|�������/Sr,)rr)rr$rr%r r!�values_counts   ����rr.z/LoopFullUnrolling.visit_For.<locals>.<listcomp>ls\��� A� A� A�$*�A�s�!'��v�c�{�{�')�r�$�)�Q��'E�'E�!G�!G� A� A� Ar)r�getr�
generic_visit�anyrrr�
isinstance�iterr�Tuple�List�len�eltsr
�MAX_NODE_COUNT�update�sum�	enumerate�compile�gast_to_ast�
Expression�listr/�
__import__�	Exception)rr �	has_break�has_cont�
node_countr*�total_count�issmall�code�values�new_noder%r-r!r2s``         @@@@r�	visit_ForzLoopFullUnrolling.visit_For8s���������<��l�+�+�	��K�	
���4� � � ��,�,�,�,�!%��,�,�,�,�,�	��+�+�+�+� $�	�+�+�+�+�+���	��	��K��[�[��D�1�1�
�	K�	K�	K�	K�	K�	&�	&�	&�	C�	C�	C��d�i�#�)�S�X�!6�7�7�	J��T�Y�^�,�,�J�$�z�1�K�!�$5�$D�D�G��
J�"����E�E�E�E�E�E�E�*3�D�I�N�*C�*C�E�E�E�FH�J�J�J��s��s�~�d�i�'@�'@�A�A�)�6�3�3��	��$�t�j�*�Z�2H�2H�%I�J�J�K�K�F�F���	�	�	��K�K�K�	�����6�{�{�� �<�/��� 1� @�@���	�
�� A� A� A� A� A� A� A�.7��.?�.?� A� A� A�BD�F�F��#�������
�
�
�����
�����s$�7,F$�$F3�2F3�4H�H!� H!N)�__name__�
__module__�__qualname__�__doc__r<rNr,rrr
r

s5������&�&�P�N�;�;�;�;�;rr
)rR�pythranr�pythran.analysesrrr�pythran.openmpr�pythran.conversionr�pythran.passmanagerr	�copyr�gastrr
r,rr�<module>rZs���A�A�������=�=�=�=�=�=�=�=�=�=�'�'�'�'�'�'�%�%�%�%�%�%�.�.�.�.�.�.�����������f�f�f�f�f��f�f�f�f�fr

Youez - 2016 - github.com/yon3zu
LinuXploit