You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[mypyc] Implement lowering pass and add primitives for int (in)equality (#17027)
Add a new `PrimitiveOp` op which can be transformed into lower-level ops
in a lowering pass after reference counting op insertion pass.
Higher-level ops in IR make it easier to implement various
optimizations, and the output of irbuild test cases will be more compact
and readable.
Implement the lowering pass. Currently it's pretty minimal, and I will
add additional primitives and the direct transformation of various
primitives to `CallC` ops in follow-up PRs. Currently primitives that
map to C calls generate `CallC` ops in the main irbuild pass, but the
long-term goal is to only/mostly generate `PrimitiveOp`s instead of
`CallC` ops during the main irbuild pass.
Also implement primitives for tagged integer equality and inequality as
examples.
Lowering of primitives is implemented using decorated handler functions
in `mypyc.lower` that are found based on the name of the primitive. The
name has no other significance, though it's also used in pretty-printed
IR output.
Work on mypyc/mypyc#854. The issue describes the motivation in more
detail.
0 commit comments