Skip to content

Idea: Keep track of set condition codes #401

Closed
@eira-fransham

Description

@eira-fransham

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    lightbeamIssues related to the Lightbeam compiler

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions