File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4968,8 +4968,10 @@ impl Function {
49684968 } ,
49694969 insn => {
49704970 let insn_reads_memory = insn. effects_of ( ) . includes ( Effect :: read ( abstract_heaps:: Memory ) ) ;
4971- let insn_uses_control_flow = insn. effects_of ( ) . includes ( effects:: Control ) ;
4972- // TODO(Jacob): Once we update from extended basic blocks to normal basic blocks, we can remove the control flow check
4971+ let insn_uses_control_flow = insn. effects_of ( ) . includes ( Effect :: write ( abstract_heaps:: Control ) ) ;
4972+ // TODO(Jacob): We should refine the control flow check
4973+ // For instance, we could sink the StoreField instruction into failed guards
4974+ // This allows us to preserve the dead store optimization.
49734975 if insn_reads_memory || insn_uses_control_flow {
49744976 compile_time_heap. clear ( ) ;
49754977 }
You can’t perform that action at this time.
0 commit comments