Skip to content

JIT: inconsistent handling of GT_LCL_FLD in value numbering #12142

Closed

Description

@AndyAyersMS

See notes in dotnet/coreclr#22867.

Basically, entire stores are handled differently than entire reads, so that if there's a store followed by a load they get numbered differently. One would expect a certain symmetry in the following bits of code:

Reads:
https://github.com/dotnet/coreclr/blob/5c95e296a3f67d6d04146f455fe364e2fd9e9ddc/src/jit/valuenum.cpp#L7043-L7070

Writes:
https://github.com/dotnet/coreclr/blob/5c95e296a3f67d6d04146f455fe364e2fd9e9ddc/src/jit/valuenum.cpp#L7317-L7358

Seems like always modelling these accesses via selectors is prudent.

category:implementation
theme:value-numbering
skill-level:expert
cost:small

Activity

  1. self-assigned this
    on Feb 27, 2019
  2. AndyAyersMS commented on Feb 28, 2019

    @AndyAyersMS
    MemberAuthor

    Have a prototype of this: ValueNumberLocalFieldEntireAccess-- doesn't lead to any fx diffs on its own, so likely we're not hitting cases of this yet. And result is largely the same when applied on top of dotnet/coreclr#22867; the only diff I see is in my test case. So maybe not high-priority.

  3. transferred this issue fromdotnet/coreclron Jan 31, 2020
  4. added this to the Future milestone on Jan 31, 2020
  5. ghost added
    in-prThere is an active PR which will close this issue when it is merged
    on May 6, 2022
  6. ghost removed
    in-prThere is an active PR which will close this issue when it is merged
    on May 27, 2022
  7. ghost locked as resolved and limited conversation to collaborators on Jun 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

JitUntriagedCLR JIT issues needing additional triagearea-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