I am running into a fundamental issue, namely that I cannot produce the arguments for a basic block without insane spaghetti code. To Resolve this it is pretty clear I need to go back and add dominance. Add all the basic blocks for all the macro uses and such.
To do this I will need to refactor the control flow graph, this will be broken into more stages now.
- Produce the cfg
- Compute the dominance of the basic blocks
- Assign the macro arguments
- Then we can do the instructions as normal
I am running into a fundamental issue, namely that I cannot produce the arguments for a basic block without insane spaghetti code. To Resolve this it is pretty clear I need to go back and add dominance. Add all the basic blocks for all the macro uses and such.
To do this I will need to refactor the control flow graph, this will be broken into more stages now.