Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Late cast expansion: castclass #97237

Merged
merged 4 commits into from
Jan 22, 2024
Merged

Conversation

EgorBo
Copy link
Member

@EgorBo EgorBo commented Jan 19, 2024

Move profiled castclasses from importer to fgLateCastExpand

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 19, 2024
@ghost ghost assigned EgorBo Jan 19, 2024
@ghost
Copy link

ghost commented Jan 19, 2024

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

Issue Details

Move profiled castclasses from importer to fgLateCastExpand

Author: EgorBo
Assignees: EgorBo
Labels:

area-CodeGen-coreclr

Milestone: -

@EgorBo
Copy link
Member Author

EgorBo commented Jan 20, 2024

It turned out to be a trivial change to support profiled castclass as an addition to profiled isinst.

To move non-profiled casts I will have to add a few additional things:

  1. In some cases we don't need the fallback call at all, e.g. obj is string because string is sealed
  2. In some cases the fallback call should be marked as no-return (and its block converted to BBJ_THROW)
  3. getExactClasses for NativeAOT
    ...

@EgorBo
Copy link
Member Author

EgorBo commented Jan 20, 2024

PTAL @jakobbotsch @dotnet/jit-contrib Build failures are known. Diffs

@EgorBo EgorBo requested a review from jakobbotsch January 20, 2024 13:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants