-
-
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
improved IR #15609
improved IR #15609
Conversation
you need to not add [ci skip] to the commit message so that CI can be allowed to run on this |
Yes, that's kind of a remnant. I'm going to add a bit more to this before merging anyway. |
e8a69d7
to
16283f5
Compare
@@ -166,7 +166,7 @@ function show_spec_linfo(io::IO, frame::StackFrame) | |||
else | |||
linfo = get(frame.outer_linfo) | |||
if isdefined(linfo, 8) |
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.
isdefined(linfo, :specTypes)
?
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.
👍
this avoids needing to repeatedly look up labels when interpreting or analyzing code.
wrap static parameters with (static-parameter )
LambdaInfo.ast is now LambdaInfo.code, and is just an array of statements store LambdaInfo objects in the tfunc cache, instead of just ASTs now type inference operates on InferenceState.linfo in place, and eventually copies the results to InferenceState.destination if necessary.
16283f5
to
1ee954a
Compare
I have no idea what this is but I am excited anyway! 🎉 |
size_t ngensym = (jl_is_array(gensym_types) ? jl_array_len(gensym_types) : jl_unbox_long(gensym_types)); | ||
li->slotnames = jl_alloc_cell_1d(nslots); | ||
li->slottypes = jl_nothing; | ||
li->slotflags = jl_alloc_array_1d(jl_array_uint8_type, nslots); |
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.
Missing wbs? (here and above)
I should summarize:
|
li->fptr = fptr; | ||
li->name = sname; | ||
// TODO jb/functions: what should li->ast be? | ||
li->ast = (jl_value_t*)jl_exprn(lambda_sym,0); jl_gc_wb(li, li->ast); | ||
li->code = (jl_array_t*)jl_an_empty_cell; jl_gc_wb(li, li->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.
This wb can actually be removed but is fine to keep..
@yuyichao Thanks I will fix those. |
#15181 rebased.