lowering the IR, thus reimplementing an extra pass on a lowered version of the IR, and wasting a register (that will be copy propagated) during allocation
or re-introducing the idea of Physical registers in the IR, and thus all passes should take that into account
Moreover, writing to the ReceiverResultReg is tricky because you can only do it when you know you’re not going to fail…
Special registers are lowered in the backend and not exposed in during optimization. Thus, they cannot be optimized/propageted and so on.
Example
=>
Difficulty: Difficult
Requires some redesigns. Either
Moreover, writing to the ReceiverResultReg is tricky because you can only do it when you know you’re not going to fail…