============ initial translation from Move ================ [variant baseline] fun MultiDeps::add_to($t0|s: &mut MultiDeps::S, $t1|t: &MultiDeps::T, $t2|v: bool) { var $t3|tmp#$3: u64 var $t4: bool var $t5: &MultiDeps::T var $t6: &mut MultiDeps::S var $t7: &mut u64 var $t8: u64 var $t9: &MultiDeps::T var $t10: &u64 var $t11: u64 var $t12: u64 var $t13: &mut MultiDeps::S var $t14: &mut u64 0: $t4 := move($t2) 1: if ($t4) goto 2 else goto 10 2: label L0 3: $t5 := move($t1) 4: destroy($t5) 5: $t6 := copy($t0) 6: $t7 := borrow_field.f($t6) 7: $t8 := read_ref($t7) 8: $t3 := $t8 9: goto 16 10: label L2 11: $t9 := move($t1) 12: $t10 := borrow_field.f($t9) 13: $t11 := read_ref($t10) 14: $t3 := $t11 15: goto 16 16: label L3 17: $t12 := move($t3) 18: $t13 := move($t0) 19: $t14 := borrow_field.f($t13) 20: write_ref($t14, $t12) 21: return () } ============ after pipeline `read_write_set` ================ [variant baseline] fun MultiDeps::add_to($t0|s: &mut MultiDeps::S, $t1|t: &MultiDeps::T, $t2|v: bool) { var $t3|tmp#$3: u64 var $t4: bool var $t5: &MultiDeps::T var $t6: &mut MultiDeps::S var $t7: &mut u64 var $t8: u64 var $t9: &MultiDeps::T var $t10: &u64 var $t11: u64 var $t12: u64 var $t13: &mut MultiDeps::S var $t14: &mut u64 # Accesses: # Formal(0): Read # Formal(0)/f: ReadWrite # Formal(1): Read # Formal(1)/f: Read # Formal(2): Read # # Locals: # Formal(0)/f: {Formal(0)/f, Formal(1)/f, } # 0: $t4 := move($t2) 1: if ($t4) goto 2 else goto 10 2: label L0 3: $t5 := move($t1) 4: destroy($t5) 5: $t6 := copy($t0) 6: $t7 := borrow_field.f($t6) 7: $t8 := read_ref($t7) 8: $t3 := $t8 9: goto 16 10: label L2 11: $t9 := move($t1) 12: $t10 := borrow_field.f($t9) 13: $t11 := read_ref($t10) 14: $t3 := $t11 15: goto 16 16: label L3 17: $t12 := move($t3) 18: $t13 := move($t0) 19: $t14 := borrow_field.f($t13) 20: write_ref($t14, $t12) 21: return () }