-
Notifications
You must be signed in to change notification settings - Fork 5.1k
JIT: generalize ParseArrayAddress a bit more #112527
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
Conversation
Now that we are stack allocating arrays, the array reference may be either TYP_BYREF or TYP_I_IMPL, so try and recognize those cases when possible. In particular for OSR methods the array allocation may "disappear" once we redirect flow to the OSR entry, so relying on VN is insufficient. Fixes dotnet#112429 (benchmark regression where we're measuring OSR code)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
Files not reviewed (1)
- src/coreclr/jit/gentree.cpp: Language not supported
@EgorBo PTAL Would be nice not to have to have |
src/coreclr/jit/gentree.cpp
Outdated
const unsigned lclNum = tree->AsLclVar()->GetLclNum(); | ||
CORINFO_CLASS_HANDLE hnd = comp->lvaTable[lclNum].lvClassHnd; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const unsigned lclNum = tree->AsLclVar()->GetLclNum(); | |
CORINFO_CLASS_HANDLE hnd = comp->lvaTable[lclNum].lvClassHnd; | |
CORINFO_CLASS_HANDLE hnd = comp->lvaGetDesc(tree->AsLclVar())->lvClassHnd; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(mostly just want to see lvaGetDesc
instead of raw access into lvaTable
)
Now that we are stack allocating arrays, the array reference may be either TYP_BYREF or TYP_I_IMPL, so try and recognize those cases when possible. In particular for OSR methods the array allocation may "disappear" once we redirect flow to the OSR entry, so relying on VN is insufficient.
Fixes #112429 (benchmark regression where we're measuring OSR code)