I've always wondered why more compilers don't use parameters with basic blocks rather than phi nodes.
I enjoyed this post discussing tradeoffs, including comments on how GHC and Swift model blocks:
miniblog.
Related Posts
If you created a large, successful OSS project, would you want to be BDFL or move on after a period?
I see tradeoffs on both sides, although it's not a decision I've needed to make myself.
Implementing interactive languages, and the tradeoffs of interpreters, JIT compilers, and AOT compilers:
Optimising GHC, implementing assembly pretty-printers, and the tradeoffs of implementing against an interface: https://www.tweag.io/blog/2022-12-22-making-ghc-faster-at-emitting-code/