============ after processor `memory_instr` ================ [variant baseline] pub fun Trafo::incr_ref($t0|r: &mut u64) { var $t1: u64 var $t2: u64 var $t3: u64 0: trace_local[r]($t0) 1: $t1 := read_ref($t0) 2: $t2 := 1 3: $t3 := +($t1, $t2) 4: write_ref($t0, $t3) 5: trace_local[r]($t0) 6: return () } [variant baseline] pub fun Trafo::use_incr_ref($t0|b: bool): Trafo::R { var $t1|r1: Trafo::R var $t2|r2: Trafo::R var $t3|r_ref: &mut Trafo::R var $t4|tmp#$4: &mut Trafo::R var $t5: u64 var $t6: u64 var $t7: &mut Trafo::R var $t8: &mut Trafo::R var $t9: &mut u64 var $t10: Trafo::R 0: trace_local[b]($t0) 1: $t5 := 1 2: $t1 := pack Trafo::R($t5) 3: trace_local[r1]($t1) 4: $t6 := 2 5: $t2 := pack Trafo::R($t6) 6: trace_local[r2]($t2) 7: if ($t0) goto 10 else goto 8 8: label L1 9: goto 16 10: label L0 11: $t7 := borrow_local($t1) 12: $t4 := $t7 13: write_back[LocalRoot($t1)]($t7) 14: trace_local[tmp#$4]($t7) 15: goto 21 16: label L2 17: $t8 := borrow_local($t2) 18: $t4 := $t8 19: write_back[LocalRoot($t2)]($t8) 20: trace_local[tmp#$4]($t8) 21: label L3 22: trace_local[r_ref]($t4) 23: $t9 := borrow_field.x($t4) 24: Trafo::incr_ref($t9) 25: write_back[Reference($t4)]($t9) 26: write_back[LocalRoot($t1)]($t4) 27: write_back[LocalRoot($t2)]($t4) 28: $t10 := move($t2) 29: trace_return[0]($t10) 30: return $t10 }