IR generation now includes (often extraneous) phis, blocks are ordered reasonably, and overall shape is looking SSA-ish.

Using the Filled/Sealed approach from Braun 2013 for phi generation, and doing a bit of simple direct-to-SSA-from-AST assembly similar to that described in Brandis/Mössenböck 1994.

Need to explore some more complex test cases and finish up codegen for struct/array access, etc, and then it'll be on to adventures in register allocation.

#Projects #Compiler

Finding the balance for writing-a-bunch-of-new-code in a personal project is always fun.

I want to checkpoint often enough that if I can recover from mistakes without too much pain, but I definitely don't want to be committing just a constant spew of super-tiny changes that do little in isolation.

I sort of split the difference by trying to reasonably summarize the component micro-commits, as it were. Also try to ensure everything stays buildable.

https://github.com/swetland/spl/commit/096751c191bb58dc22b6fdbf70cde6d8884b4262

#Projects #Compiler

@swetland I feel this in my bones.