-
Notifications
You must be signed in to change notification settings - Fork 31
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
Update to changes to construct_ssa #234
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #234 +/- ##
==========================================
+ Coverage 56.17% 56.50% +0.32%
==========================================
Files 28 28
Lines 2848 2869 +21
==========================================
+ Hits 1600 1621 +21
Misses 1248 1248 ☔ View full report in Codecov by Sentry. |
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.
LGTM
The only thing that construct_ssa!
inspects in the OptimizationState are the function- and block- level slot types (slottypes
and bb_vartables
, respectively)
src/stage1/recurse.jl
Outdated
@@ -276,7 +276,13 @@ function optic_transform!(ci, mi, nargs, N) | |||
stmts = VERSION < v"1.11.0-DEV.258" ? ir.stmts.inst : ir.stmts.stmt |
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.
FWIW in the typical pipeline convert_to_ircode
is used to convert CodeInfo-style statements to IRCode, but that's skipped here.
Most of the function is a no-op if you have no (informative) results from inference but there is some normalization (e.g. strip_trailing_junk!
) that might be needed here for certain IR.
None of that is new in this PR though, so we can worry about it later.
@topolarity any ideas why this would make it hang? |
Not sure, but here's a reduced MWE at least: using Diffractor
function times_three_while(x)
z = x
i = 3
while i > 1
z += x
i -= 1
end
z
end
let var"'" = Diffractor.PrimeDerivativeBack
println(times_three_while'(1.0) == 3.0)
end The IR that Diffractor generates is identical on latest Julia versus
|
I guess since the IR is identical, we could consider merging this. |
Particularily the update for `CC.finish!` is essential.
Going to merge as the 1.10 CI passes. |
This is an update to make things work after JuliaLang/julia#50943
Right now however it seems to makes tests hang