-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Unnecessary GC roots with jlcall #22415
Comments
Can you open a second issue for the second point here. That should be a fairly straightforward fix once I look at it. The first one is a bit more involved. |
K. I actually opened this one for the second one but decided to also include the first one... I'll open another one for the jlcall frame reuse if you prefer two issues. |
I do. That way I can reference the issue in the pull request that fixes it and it's clear what's being fixed. |
Sorry, the last one was tested with the wrong julia version........................... |
It is still a simpler way to reproduce the extra gcroot issue though.... just with very different LLVM IR....
|
They are not needed any more in this brave new world. Fixes #22415
They are not needed any more in this brave new world. Fixes JuliaLang#22415
They are not needed any more in this brave new world. Fixes #22415
It turns out that the original case in #15369 is actually not fixed =(. The original case hits #19418 so is not noinline anymore, a slightly modified version is,
code_llvm
forf2
is.There's an unnecessary root for the second result at the end of the function (a bit hard to see due to #22414), i.e. in
The result of the function call (
%38
) is stored to two different slots even though it is returned later without hitting another safepoint so it shouldn't need any roots.The text was updated successfully, but these errors were encountered: