diff options
author | Jimmy Miller <[email protected]> | 2023-01-19 13:42:49 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2023-01-19 13:42:49 -0500 |
commit | 762a3d80f77db0f96d3e01ccd1cc7b3891f0cfcf (patch) | |
tree | a1437a0b91802041580bbc006909c4b8da364a96 /yjit/bindgen | |
parent | 8872ebec6a3edc8327b5f348656c73a52bceda4a (diff) |
Implement splat for cfuncs. Split exit exit cases to better capture where we are exiting (#6929)
YJIT: Implement splat for cfuncs. Split exit cases
This also implements a new check for ruby2keywords as the last
argument of a splat. This does mean that we generate more code, but in
actual benchmarks where we gained speed from this (binarytrees) I
don't see any significant slow down. I did have to struggle here with
the register allocator to find code that didn't allocate too many
registers. It's a bit hard when everything is implicit. But I think I
got to the minimal amount of copying and stuff given our current
allocation strategy.
Notes
Notes:
Merged-By: maximecb <[email protected]>
Diffstat (limited to 'yjit/bindgen')
-rw-r--r-- | yjit/bindgen/src/main.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/yjit/bindgen/src/main.rs b/yjit/bindgen/src/main.rs index 98d9161866..229b02bdcd 100644 --- a/yjit/bindgen/src/main.rs +++ b/yjit/bindgen/src/main.rs @@ -227,6 +227,9 @@ fn main() { // From include/ruby/internal/value_type.h .allowlist_type("ruby_value_type") // really old C extension API + // From include/ruby/internal/hash.h + .allowlist_type("ruby_rhash_flags") // really old C extension API + // Autogenerated into id.h .allowlist_type("ruby_method_ids") |