-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Block inlines with different exception wrapping behavior #113849
base: main
Are you sure you want to change the base?
Conversation
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/vm/jitinterface.cpp: Language not supported
@jkotas PTAL |
src/coreclr/vm/jitinterface.cpp
Outdated
Module* pCalleeModule = pCallee->GetModule(); | ||
Module* pRootModule = pOrigCaller->GetModule(); | ||
|
||
if (pRootModule->IsRuntimeWrapExceptions() != pCalleeModule->IsRuntimeWrapExceptions()) |
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.
These checks are cached cheap bit tests. We should do them first, and run the more expensive IL header decoder only when the modes do not match.
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.
Also looks like there are still issues with (lack of) an IL header.
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.
Likely I need to handle transient methods here too.
I think we need the same check in crossgen2 for R2R |
Would the check go into |
I do not see caller and callee in CrossModuleInlineableUncached. I think it needs to be earlier. |
@jkotas I started in on crossgen2 support, but I can't see where custom attributes on modules are recorded, so could use some help finishing it off. Also I think it would be better to either always return INLINE_FAIL from |
@davidwrighton maybe you can give me some pointers? How do we find module attributes in crossgen2? I see support for assembly attributes but nothing for modules. |
We don't have higher level facilities for this in crossgen2, this will have to use System.Reflection.Metadata APIs, something along the lines of:
We'll probably want to cache this on EcmaModule. |
Fixes #113815