============ after processor `usage_analysis` ================ [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 15 10: label L0 11: $t7 := borrow_local($t1) 12: $t4 := $t7 13: trace_local[tmp#$4]($t7) 14: goto 19 15: label L2 16: $t8 := borrow_local($t2) 17: $t4 := $t8 18: trace_local[tmp#$4]($t8) 19: label L3 20: trace_local[r_ref]($t4) 21: $t9 := borrow_field.x($t4) 22: Trafo::incr_ref($t9) 23: write_back[Reference($t4)]($t9) 24: write_back[LocalRoot($t1)]($t4) 25: write_back[LocalRoot($t2)]($t4) 26: $t10 := move($t2) 27: trace_return[0]($t10) 28: return $t10 }