On Tue Jan 30 00:59:08 2024 +0000, Conor McCarthy wrote:
In that case, can you assign to r3 in l1, then overwrite it later in one flow path but not the other? I suspect this is how phi values are resolved in the hardware, but I haven't looked at the details. Maybe something to consider later, since the current code is fine for testing.
I don't know much about how PHI nodes are handled downstream, but I can't assign `r3` in `l2` or `l3`, because by the time I'm there I don't know anymore from which block I got control. Here only `l1` and `l2` are shown, but it is assumed that there are other blocks that jump to `l2`, otherwise there wouldn't be the need for a PHI node in the first place.
At any rate, my intention is that this SSA materialization pass should eventually go away, or at least be only used for the few cases in which the CFG structurizer must use a multilevel break to execute a certain BRANCH.