Ë
    pPêj@  ã                  ó~   — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	„Z G d
„ de«      Zy)aq  Transform IR to lower-level ops.

Higher-level ops are used in earlier compiler passes, as they make
various analyses, optimizations and transforms easier to implement.
Later passes use lower-level ops, as they are easier to generate code
from, and they help with lower-level optimizations.

Lowering of various primitive ops is implemented in the mypyc.lower
package.
é    )Úannotations)ÚFuncIR)ÚPrimitiveOpÚValue)ÚLowLevelIRBuilder)Úlowering_registry)ÚCompilerOptions)ÚIRTransformc                óŠ   — t        d |«      }t        |«      }|j                  | j                  «       |j                  | _        y ©N)r   ÚLoweringVisitorÚtransform_blocksÚblocks)ÚirÚoptionsÚbuilderÚvisitors       úZ/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/transform/lower.pyÚlower_irr      s5   € Ü  gÓ.€GÜ˜gÓ&€GØ×Ñ˜RŸY™YÔ'Ø—‘€B…Ió    c                  ó   — e Zd Zdd„Zy)r   c                óŒ   — t         |j                  j                     } || j                  |j                  |j
                  «      S r   )r   ÚdescÚnamer   ÚargsÚline)ÚselfÚopÚlower_fns      r   Úvisit_primitive_opz"LoweringVisitor.visit_primitive_op   s1   € ô % R§W¡W§\¡\Ñ2ˆÙ˜Ÿ™ b§g¡g¨r¯w©wÓ7Ð7r   N)r   r   ÚreturnzValue | None)Ú__name__Ú
__module__Ú__qualname__r    © r   r   r   r      s   „ ô8r   r   N)r   r   r   r	   r!   ÚNone)Ú__doc__Ú
__future__r   Úmypyc.ir.func_irr   Úmypyc.ir.opsr   r   Úmypyc.irbuild.ll_builderr   Úmypyc.lower.registryr   Úmypyc.optionsr	   Úmypyc.transform.ir_transformr
   r   r   r%   r   r   ú<module>r/      s2   ðñ	õ #å #ß +Ý 6Ý 2Ý )Ý 4óô8�kõ 8r   