Skip to content

JIT optimization: tail merge #8795

Closed

Description

@JosephTremoulet

Tracking issue for a classic codesize optimization that's not currently implemented in RyuJIT. The optimization would find predecessors of a common successor (along non-critical edges) that all end in equivalent sequences leading up to the join, and move the gotos and join earlier such that statically only one copy of the equivalent sequence remains. We'd want to treat returns as "joining" at the continuation so that we could eliminate redundant epilogs when a function has (statically) multiple returns of the same expression.

category:cq
theme:optimization
skill-level:expert
cost:medium

Activity

  1. added a commit that references this issue on Aug 24, 2017
  2. transferred this issue fromdotnet/coreclron Jan 31, 2020
  3. added this to the Future milestone on Jan 31, 2020
  4. added a commit that references this issue on Dec 20, 2021
  5. added a commit that references this issue on Oct 16, 2022
    2da39fb
  6. ghost added
    in-prThere is an active PR which will close this issue when it is merged
    on Oct 16, 2022
  7. added a commit that references this issue on Oct 25, 2022
    9b16818
  8. ghost removed
    in-prThere is an active PR which will close this issue when it is merged
    on Oct 25, 2022
  9. ghost locked as resolved and limited conversation to collaborators on Nov 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIenhancementProduct code improvement that does NOT require public API changes/additionsoptimizationtenet-performancePerformance related issue

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions