NL i@~dZddlmZddlmZddlmZmZddlm Z ddl m Z ddl m Z ddlmZd d ZGd d eZy )aqTransform 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) PrimitiveOpValue)LowLevelIRBuilder)lowering_registry)CompilerOptions) IRTransformctd|}t|}|j|j|j|_yN)rLoweringVisitortransform_blocksblocks)iroptionsbuildervisitors [/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/transform/lower.pylower_irrs5g.Gg&G RYY'BIceZdZddZy)r ct|jj}||j|j|j Sr )rdescnamerargsline)selfoplower_fns rvisit_primitive_opz"LoweringVisitor.visit_primitive_ops1%RWW\\2 bggrww77rN)rrreturnz Value | None)__name__ __module__ __qualname__r rrr r s8rr N)rrrr r!None)__doc__ __future__rmypyc.ir.func_irr mypyc.ir.opsrrmypyc.irbuild.ll_builderrmypyc.lower.registryr mypyc.optionsr mypyc.transform.ir_transformr rr r%rrr/s2 ##+62)48k8r