summaryrefslogtreecommitdiff
path: root/test/prism/result/static_inspect_test.rb
diff options
context:
space:
mode:
authorRandy Stauner <randy@r4s6.net>2026-01-20 23:19:34 -0700
committerGitHub <noreply@github.com>2026-01-21 01:19:34 -0500
commit6f1453dc083caecf32c1c7f55491c4ac6ddd7a62 (patch)
tree533803112d223a08e3fe4690123f033bd16d5479 /test/prism/result/static_inspect_test.rb
parent01984fa80e8b8de0c0b1b726101ffadece5ea5ca (diff)
ZJIT: Support optional keyword arguments in direct send (#15873)HEADmaster
This fills in constants when unspecified optional keyword args have static default values. For complex defaults we calculate the kw_bits and utilize the checkkeyword logic we already had. The following benchmarks used to register param_kw_opt. Some of them (like graphql*) just trade that for some other complexity, or "too_many_args_for_lir". Notable improvements include activerecord where the previous param_kw_opt count has a corresponding drop in complex args and dynamic_send_count and a nearly equal rise in optimized_send_count. The gains are similar but not as complete in hexapdf, liquid-render, lobsters, railsbench, shipit. | Benchmark | param_kw_opt | Δ one_or_more_complex | Δ too_many_args | Δ dynamic_send | Δ optimized_send | |-----------|-------------:|----------------------:|----------------:|---------------:|-----------------:| | activerecord | 6,307,141 | -6,253,823 | +4,084 | -6,306,223 | +6,279,766 | | blurhash | 21 | -21 | +0 | -23 | +20 | | chunky-png | 813,604 | -813,604 | +0 | -813,616 | +813,556 | | erubi-rails | 1,590,395 | -590,274 | +35,578 | -552,914 | +550,826 | | fluentd | 4,906 | -4,854 | +21 | -5,745 | +5,080 | | graphql | 1,610,439 | -1,610,432 | +1,605,751 | -4,688 | +4,628 | | graphql-native | 16,332,386 | -16,332,375 | +16,309,681 | -22,701 | +22,638 | | hexapdf | 9,165,465 | -9,124,509 | +203,754 | -8,920,727 | +8,839,295 | | liquid-compile | 14,817 | -14,792 | +0 | -14,705 | +15,045 | | liquid-render | 3,994,905 | -3,994,901 | +0 | -3,994,868 | +3,020,779 | | lobsters | 2,467,510 | -2,297,298 | +205,610 | -2,216,583 | +1,694,092 | | protoboeuf | 11,521 | -11,521 | +0 | -11,523 | +11,520 | | psych-load | 77,612 | -77,609 | +29,942 | -77,613 | -12,242 | | rack | 2,743 | -2,742 | +0 | -2,750 | +2,668 | | railsbench | 3,579,778 | -2,517,615 | +432,575 | -2,084,480 | +1,882,928 | | ruby-lsp | 287,171 | -379,716 | +37 | -409,368 | -267,248 | | rubyboy | 5,993,004 | -5,993,003 | +0 | -5,993,006 | +5,992,993 | | sequel | 182,652 | -182,631 | +0 | -182,563 | +122,687 | | shipit | 3,289,456 | -2,778,419 | +306,867 | -3,201,395 | +1,068,505 | | tinygql | 2,732 | -2,732 | +1 | -2,734 | +2,729 |
Diffstat (limited to 'test/prism/result/static_inspect_test.rb')
0 files changed, 0 insertions, 0 deletions