pub struct Moves(/* private fields */);Expand description
Which instruction each of the allocator’s moves became.
A spill and a copy are both a mov once they are written, and so is an instruction the lowering
wrote that happens to move the same register to the same address. Telling them apart afterwards
by looking at them is guesswork, and a pass that guesses wrong about a store to a volatile
variable deletes a read the program insisted on. So what the allocator asked for is recorded as
it is written, and a later pass that is only allowed to touch the allocator’s own moves has the
list rather than a heuristic. See crate::copies, which is the one pass that reads this.
It is kept by instruction number rather than in a hash map, because that pass asks about every instruction in the function and the numbers are dense.