Skip to content

Improve JIT loop optimizations (.NET 9) #93144

Closed

Description

@BruceForstall

We plan to continue improving JIT optimization capabilities for loop code. An overview of many JIT optimization possibilities is here; this issue will focus on issues we choose to address in .NET 9.

Planned for .NET 9

Loop recognition and canonicalization

Loop cloning

Induction variables

Pushed out of .NET 9

Loop cloning

Multi-dimensional array improvements

Loop peeling

Activity

  1. added
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    User StoryA single user-facing feature. Can be grouped under an epic.
    on Oct 6, 2023
  2. added this to the 9.0.0 milestone on Oct 6, 2023
  3. self-assigned this
    on Oct 9, 2023
  4. jakobbotsch commented on Dec 13, 2023

    @jakobbotsch
    Member

    With recent work we are close to having moved from the old lexical representation of loops to a more general graph-based one. Since I'll be out until New Year's, here's a more detailed list of work done and expected future work.

    Some stats from the loop representation switch over some of our win-x64 collections:

    • 25.1% more hoisting in benchmarks.run_pgo, 5.7% more hoisting in realworld, 35.8% more hoisting in libraries_tests.run
    • 7.3% more cloned loops in benchmarks.run_pgo, 6.8% more cloned loops in realworld, 6.7% more cloned loops in libraries_tests.run
    • 5.0% (~700) more aligned loops aggregated over the collections
  5. moved this to Team User Stories in .NET Core CodeGenon Jun 5, 2024
  6. JulieLeeMSFT commented on Jul 30, 2024

    @JulieLeeMSFT
    Member

    .NET9 work is complete. Closing.

  7. JulieLeeMSFT commented on Jul 30, 2024

    @JulieLeeMSFT
    Member

    Will move the pushed-out items to .NET 10 user story during .NET 10 planning.

  8. moved this from Team User Stories to Done in .NET Core CodeGenon Jul 30, 2024
  9. locked and limited conversation to collaborators on Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

User StoryA single user-facing feature. Can be grouped under an epic.area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions