-
-
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
Couple ispointer fixes #15312
Couple ispointer fixes #15312
Conversation
💯 |
The FixedSizeArrays code example from #15274 is also fixed with this. |
Nice. Is this testable in any more direct way than doing regular perf tracking? |
I'm not sure there is a reasonable way since we don't have first class llvm IR in the language and trying to parse it (or look at the size of the text ...) feels quite brittle |
I added a benchmark for this in JuliaCI/BaseBenchmarks.jl#7. If I did it correctly this PR should show a good performance gain for this. Should be something like |
If someone could run that for me :) |
|
Your benchmark job has completed - no performance regressions were detected. A full report can be found here. cc @jrevels |
Sorry, changes to that repo don't automatically deploy to @nanosoldier - I normally tag a version and do it manually, so that I can do a full test sweep of the CI cycle first. I didn't have time to do it yesterday, but I can deploy the change tomorrow. |
Okay, no worries. |
// just compute the pointer and let user load it when necessary | ||
Type *fty = julia_type_to_llvm(jt); | ||
Value *addr = builder.CreateGEP(builder.CreatePointerCast(ptr, PointerType::get(fty,0)), idx); | ||
jl_cgval_t fieldval = mark_julia_slot(addr, jt); |
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.
fieldval.isimmutable = true
?
Should: fix #15274, fix #13305, fix #15277
@KristofferC @simonster can you please check that it is all better ?
Also thanks to @vtjnash for the much nicer codegen.cpp now