Closed
Description
If we kept track of what conditions were set we could get better performance on the idiom:
for (int i = something; i != 0; i--) {
// ...
}
Instead of emitting a cmp
after the dec
, we can work out that we already have the zero flag set from the dec
and just emit a jnz
. Currently there's no way to abstract over different instructions and get metadata for them, so this would be very complicated to implement without a new assembler.
EDIT: Keeping track of what instructions mutate which condition codes would allow us to implement CraneStation/lightbeam#16 in a way that only spills the "condition" if we're about to emit an instruction that would invalidate it.