
    sh                     X    S SK Jr   " S S\5      r " S S\5      r " S S\5      rS rg	)
    )	CallInstrc                   \    \ rS rSrS rS rS rS r\S 5       r	\S 5       r
\S 5       rS	rg
)Visitor   c                 X    Xl         UR                   H  nU R                  U5        M     g N)_module	functionsvisit_Function)selfmodulefuncs      j/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/llvmlite/ir/transforms.pyvisitVisitor.visit   s%    $$D% %    c                 X    Xl         UR                   H  nU R                  U5        M     g r   )	_functionblocksvisit_BasicBlock)r   r   bbs      r   r   Visitor.visit_Function
   s#    ++B!!"% r   c                 X    Xl         UR                   H  nU R                  U5        M     g r   )_basic_blockinstructionsvisit_Instruction)r   r   instrs      r   r   Visitor.visit_BasicBlock   s$    __E""5) %r   c                     [         er   NotImplementedErrorr   r   s     r   r   Visitor.visit_Instruction       !!r   c                     U R                   $ r   )r	   r   s    r   r   Visitor.module   s    ||r   c                     U R                   $ r   )r   r&   s    r   functionVisitor.function   s    ~~r   c                     U R                   $ r   )r   r&   s    r   basic_blockVisitor.basic_block   s       r   )r   r   r	   N)__name__
__module____qualname____firstlineno__r   r   r   r   propertyr   r)   r,   __static_attributes__ r   r   r   r      sR    &
&
*
"     ! !r   r   c                        \ rS rSrS rS rSrg)CallVisitor$   c                 R    [        U[        5      (       a  U R                  U5        g g r   )
isinstancer   
visit_Callr"   s     r   r   CallVisitor.visit_Instruction%   s     eY''OOE" (r   c                     [         er   r    r"   s     r   r:   CallVisitor.visit_Call)   r$   r   r4   N)r.   r/   r0   r1   r   r:   r3   r4   r   r   r6   r6   $   s    #"r   r6   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )ReplaceCalls-   c                 P   > [         [        U ]  5         Xl        X l        / U l        g r   )superr?   __init__origreplcalls)r   rD   rE   	__class__s      r   rC   ReplaceCalls.__init__.   s!    lD*,		
r   c                     UR                   U R                  :X  a7  UR                  U R                  5        U R                  R                  U5        g g r   )calleerD   replace_calleerE   rF   appendr"   s     r   r:   ReplaceCalls.visit_Call4   s;    <<499$  +JJe$ %r   )rF   rD   rE   )r.   r/   r0   r1   rC   r:   r3   __classcell__)rG   s   @r   r?   r?   -   s    % %r   r?   c                 R    [        X5      nUR                  U 5        UR                  $ )zdReplace all calls to `orig` to `repl` in module `mod`.
Returns the references to the returned calls
)r?   r   rF   )modrD   rE   rcs       r   replace_all_callsrR   :   s"     
d	!BHHSM88Or   N)llvmlite.irr   objectr   r6   r?   rR   r4   r   r   <module>rU      s2    !!f !@"' "
%; 
%r   