Skip to content

JIT: Missing support for pre-indexed addressing on arm64 #105193

Open

Description

@jakobbotsch

Pre-indexed addressing with writeback allows computing x = x + c; var y = *x in a single instruction on arm64. We should add support for this.

The post-indexed addressing mode was added as an emitter peephole in #105181. #105185 adds a lowering transformation that tries to set the IR up to produce patterns that are amenable to be replaced by the peephole in the emitter. The pre-indexing can work in a similar way: run the peephole when we are going to emit a load/store instruction and try to combine it with a previous add/sub. In lowering try to look for a previous GT_ADD/GT_SUB RMW to make adjacent when we see an indir. One problematic thing there is that we currently do not have a convenient list of the previous RMW ADD/SUB nodes, so we either need to search for longer (probably expensive) or we need to add such a list.

Activity

  1. ghost added
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    on Jul 21, 2024
  2. changed the title [-]JIT: Missing support for pre-indexed addressing[/-] [+]JIT: Missing support for pre-indexed addressing on arm64[/+] on Jul 21, 2024
  3. added this to the 10.0.0 milestone on Jul 21, 2024
  4. removed
    untriagedNew issue has not been triaged by the area owner
    on Jul 21, 2024
  5. dotnet-policy-service commented on Jul 21, 2024

    @dotnet-policy-service
    Contributor

    Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
    See info in area-owners.md if you want to be subscribed.

  6. modified the milestones: 10.0.0, Future on Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions