Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Pizlo form is not basic block with arguments, because basic blocks don't have arguments in Pizlo form.

I don't think basic block with arguments is CPS because CPS, in practice, involves return closures.



What is Upsilon? It sounds like something that figures out the value coming into a block, which I would call a basic block argument.

How does Upsilon know which values from other basic blocks it could receive? That information is critical for transformations like constant propagation, and register allocation.


Upsilon doesn't know anything about basic blocks. It's just an assignment.

Upsilon uses an SSA value, and assigns to a Phi. The use of an SSA value is just a normal SSA use.

The assignment to the Phi is special, and follows Static Single Use law.

In practice, you'll want to either have all Phis know about the Upsilons that refer to them, or you'll want to have a handy analysis that tells you about the Upsilons that refer to Phis. This part is no different from how your SSA form will either have user tracking (like LLVM IR) or an analysis that tells you the users.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: