diff options
author | Étienne Barrié <[email protected]> | 2024-07-29 12:15:02 +0200 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2024-09-05 12:46:02 +0200 |
commit | a99707cd9c6a1d53cf8ebc883dc210219bd67a28 (patch) | |
tree | f435c276f693070ff3102ded5ed2cea3adcc1493 /vm.c | |
parent | 63cbe3f6ac9feb44a2e43b1f853e2ca7e049316c (diff) |
Optimized instruction for Array#freeze
If an Array which is empty or only using literals is frozen, we detect
this as a peephole optimization and change the instructions to be
`opt_ary_freeze`.
[Feature #20684]
Co-authored-by: Jean Boussier <[email protected]>
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11406
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2232,7 +2232,7 @@ vm_init_redefined_flag(void) OP(EmptyP, EMPTY_P), (C(Array), C(String), C(Hash)); OP(Succ, SUCC), (C(Integer), C(String)); OP(EqTilde, MATCH), (C(Regexp), C(String)); - OP(Freeze, FREEZE), (C(String)); + OP(Freeze, FREEZE), (C(String), C(Array)); OP(UMinus, UMINUS), (C(String)); OP(Max, MAX), (C(Array)); OP(Min, MIN), (C(Array)); |