| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Edit: I might be wrong on the following, so please ignore the rest. Really sorry I just realised this optimization may not be sound: The builtin call specializations only check for that the builtin tp flags match, I don't think they check for tp_version_tag and such. So we can have a method that changes its tp_slots under our feet. Sorry for taking up your time! |
Sorry, something went wrong.
|
The rewriting that we discussed might still pay off though (rewriting {}.get() to a custom uop for example). That should also be sound, provided we have the correct guards. |
Sorry, something went wrong.
|
I think this is safe: let me explain why:
|
Sorry, something went wrong.
…3/cpython into jit-inline-funcptr
This reverts commit 0a15b1c.
|
Microbenchmark results of calling bunch of methods on each type:
|
Sorry, something went wrong.
There was a problem hiding this comment.
Very impressive. Hopefully the site failure get fixed soon. Btw, could you please update your comment above with the final benchmark results on the current commit?
Also, from my understanding talking with Kumar, the speedup comes from removing 1 null check, and 2 dependent loads. Perhaps more importantly, the dependent loads likely then allow the CPU to prefetch the call directly, which is a pretty good speedup.
Sorry, something went wrong.
The numbers are very similar and within margin of error so keeping the existing result. |
Sorry, something went wrong.
|
Seems like a slight win on macOS, and a slight loss on x86-64 https://github.com/facebookexperimental/free-threading-benchmarking/tree/main/results/bm-20260403-3.15.0a7+-e4a2fff-JIT |
Sorry, something went wrong.
I think the benchmark runner is too noisy, for example the gc_traversal benchmark is 8% slower on linux but should be unaffected by this PR. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.