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

Fix implicit nullchecks for floats on arm64 #66413

Merged
merged 1 commit into from
Mar 10, 2022
Merged

Conversation

EgorBo
Copy link
Member

@EgorBo EgorBo commented Mar 9, 2022

@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 Mar 9, 2022
@ghost ghost assigned EgorBo Mar 9, 2022
@ghost
Copy link

ghost commented Mar 9, 2022

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

Issue Details

Fixes #65942 (comment)

Author: EgorBo
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@EgorBo EgorBo merged commit 9030b78 into dotnet:main Mar 10, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Apr 9, 2022
@AntonLapounov
Copy link
Member

@EgorBo I hit the same assertion in my PR. Is it a different issue?
https:/dotnet/runtime/pull/71661/checks?check_run_id=7203673648

  Starting:    System.Text.RegularExpressions.Tests (parallel test collections = on, max threads = 4)

Assert failure(PID 21 [0x00000015], Thread: 37 [0x0025]): Assertion failed '(shiftAmount == scale) || (shiftAmount == 0)' in 'Microsoft.CodeAnalysis.DotnetRuntime.Extensions.SyntaxValueProviderExtensions:<GetMatchingNodes>g__matchesAttributeName|4_2(byref,byref,System.String,bool,byref):bool' during 'Generate code' (IL size 286; hash 0x72e8996c; Tier1)

    File: /__w/1/s/src/coreclr/jit/emitarm64.cpp Line: 7028

@EgorBo
Copy link
Member Author

EgorBo commented Jul 5, 2022

@AntonLapounov could be 🤔 in theory can be caused by #71439 - it sets nullchecks to be TYP_BYTE always even if we access a local of other type - it's ok on x64 but on ARM we're can't do that, scale must match input's type. cc @jakobbotsch

@jakobbotsch
Copy link
Member

I'll take a look tomorrow, maybe we ended up in the box removal logic with a GT_LEA child node. Though it also seems like a backend bug if it cannot handle any combination of indirection and node computing an address.

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.

Test failure JIT\\Directed\\StructABI\\structreturn\\structreturn.cmd
4 participants