Skip to content

When min major R2R version moves forward, consider some cleanups #98871

@VSadov

Description

@VSadov

GCInfo version v3 is backward-compatible with v2. That is intentional to not require moving forward the R2R min major version.

However, if the min major version is incremented for other reasons, consider the following (not backward-compatible) changes -

  • Safe points are historically encoded with offset -1. It is no longer necessary and not doing that could simplify some code.
  • GCInfo v3 is sufficient that hijacking could be done without knowing whether a method is object/ref returning.
    Once v2 is no longer in use, both GCInfo and hijacking logic could be simplified.
  • Actually anything that is keyed off !AreSafePointsInterruptible could be removed, except when needed to support x86.
    (i.e. anything for RISC architectures can stop supporting noninterruptible call sites)
  • Also consider removing DOTNET_InterruptibleCallSites knob at that time

These suggestions are not by themselves enough to bump the min major version, but the version moves forward for other reasons, please consider doing these as well.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions