Documentation

Used to store the register assignment on entry to a basic block.
We use this to handle join points, where multiple branch instructions
target a particular label. We have to insert fixup code to make
the register assignments from the different sources match up.

Where a vreg is currently stored
A temporary can be marked as living in both a register and memory
(InBoth), for example if it was recently loaded from a spill location.
This makes it cheap to spill (no save instruction required), but we
have to be careful to turn this into InReg if the value in the
register is changed.