@@ -1029,6 +1029,8 @@ impl Insn {
10291029 Insn :: Param => effects:: Empty ,
10301030 Insn :: StringCopy { .. } => allocates,
10311031 Insn :: NewArray { .. } => allocates,
1032+ // TODO(Jacob): Can we further constrain the read effects from Any?
1033+ Insn :: ArrayLength { .. } => Effect :: from_write ( effect_sets:: Empty ) ,
10321034 Insn :: NewHash { elements, .. } => {
10331035 // NewHash's operands may be hashed and compared for equality, which could have
10341036 // side-effects. Empty hashes are definitely elidable.
@@ -1089,6 +1091,8 @@ impl Insn {
10891091 Insn :: BoxFixnum { .. } => Effect :: from_sets ( effect_sets:: Other , effect_sets:: Empty ) ,
10901092 Insn :: BoxBool { .. } => effects:: Empty ,
10911093 Insn :: IsBitEqual { .. } => effects:: Empty ,
1094+ // TODO(Jacob): Maybe this gets a stronger read effect?
1095+ Insn :: FixnumAref { .. } => effects:: Empty ,
10921096 // TODO(Jacob): This is a CCall but feels like we can restrict a lot more. Perhaps even effects::Empty?
10931097 Insn :: IsA { .. } => allocates,
10941098 _ => Effect :: from_sets ( effect_sets:: Any , effect_sets:: Any ) ,
0 commit comments