Commit fd7647d
committed
Compile simple kwargs as a direct operand of call
This confirms and compiles symbol-only, simple keyword arguments as
a direct operand of the call, to allow downstream optimizations to
prepare those keyword arguments in an appropriate way.
Normal literal hashes and any keyword-like hashes with splats are
compiled as before, with the Hash being built and stored and then
loaded when the argument list is being built. Keyword hashes that
are simple avoid the copy so they are associated directly with the
call.
Order continues to be preserved for the values of the simple kwargs
hash, but the hash itself with its literal keys and any literal
values are now both an operand of and
metadata for the call.1 parent a322ab5 commit fd7647d
File tree
2 files changed
+36
-1
lines changed- core/src/main/java/org/jruby/ir
- builder
- operands
2 files changed
+36
-1
lines changedLines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2320 | 2320 | | |
2321 | 2321 | | |
2322 | 2322 | | |
| 2323 | + | |
| 2324 | + | |
| 2325 | + | |
| 2326 | + | |
| 2327 | + | |
| 2328 | + | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
2323 | 2333 | | |
2324 | 2334 | | |
| 2335 | + | |
2325 | 2336 | | |
2326 | 2337 | | |
2327 | 2338 | | |
| |||
2360 | 2371 | | |
2361 | 2372 | | |
2362 | 2373 | | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
2363 | 2388 | | |
2364 | 2389 | | |
2365 | 2390 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | | - | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
34 | 39 | | |
35 | 40 | | |
36 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
37 | 46 | | |
38 | 47 | | |
39 | 48 | | |
| 49 | + | |
40 | 50 | | |
41 | 51 | | |
42 | 52 | | |
| |||
0 commit comments