take package:ghc
See if this instruction is telling us the current C stack delta
Take the source and destination registers from a move instruction of
same register class (
RegClass).
The idea is to identify moves that can be eliminated by the register
allocator: If the source register serves no special purpose, one could
continue using it; saving one move instruction. For this, the register
kinds (classes) must be the same (no conversion involved.)
Take all the real registers from this set.
Take all the virtual registers from this set.
See if this instruction is telling us the current C stack delta
Take the source and destination from this reg -> reg move
instruction or Nothing if it's not one
Take the source and destination from this reg -> reg move
instruction or Nothing if it's not one
Take the source and destination from this (potential) reg -> reg
move instruction
We have to be a bit careful here: A
MOV can also mean an
implicit conversion. This case is filtered out.
Check whether an instruction represents a reg-reg move. The register
allocator attempts to eliminate reg->reg moves whenever it can, by
assigning the src and dest temporaries to the same real register.
unpackPtrStringTakeN n = take n .
unpackPtrString but is performed in <math> rather
than <math>, where <math> is the length of the
PtrString.
zStringTakeN n = take n . zString but is
performed in <math> rather than <math>, where <math>
is the length of the
FastZString.