summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authorÉtienne Barrié <[email protected]>2024-08-05 12:31:24 +0200
committerJean Boussier <[email protected]>2024-09-05 12:46:02 +0200
commitbf9879791af11a20e50921551220c08d1c7f7f02 (patch)
tree68732e79fac871a629fc815b525f0cc20ed1c8bc /vm.c
parenta99707cd9c6a1d53cf8ebc883dc210219bd67a28 (diff)
Optimized instruction for Hash#freeze
If a Hash which is empty or only using literals is frozen, we detect this as a peephole optimization and change the instructions to be `opt_hash_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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm.c b/vm.c
index 0f0c3c91b1..6b75a7ad5a 100644
--- a/vm.c
+++ b/vm.c
@@ -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), C(Array));
+ OP(Freeze, FREEZE), (C(String), C(Array), C(Hash));
OP(UMinus, UMINUS), (C(String));
OP(Max, MAX), (C(Array));
OP(Min, MIN), (C(Array));