============ initial translation from Move ================ [variant baseline] fun Counter::call_increment1($t0|s: &mut Counter::S) { var $t1: &mut Counter::S var $t2: &mut u64 0: $t1 := move($t0) 1: $t2 := borrow_field.f($t1) 2: Counter::increment1($t2) 3: return () } [variant baseline] fun Counter::call_increment2($t0|a: address) { var $t1: address var $t2: &mut Counter::S 0: $t1 := move($t0) 1: $t2 := borrow_global($t1) 2: Counter::increment2($t2) 3: return () } [variant baseline] fun Counter::increment1($t0|i: &mut u64) { var $t1: &mut u64 var $t2: u64 var $t3: u64 var $t4: u64 var $t5: &mut u64 0: $t1 := copy($t0) 1: $t2 := read_ref($t1) 2: $t3 := 1 3: $t4 := +($t2, $t3) 4: $t5 := move($t0) 5: write_ref($t5, $t4) 6: return () } [variant baseline] fun Counter::increment2($t0|s: &mut Counter::S) { var $t1: &mut Counter::S var $t2: &mut u64 var $t3: u64 var $t4: u64 var $t5: u64 var $t6: &mut Counter::S var $t7: &mut u64 0: $t1 := copy($t0) 1: $t2 := borrow_field.f($t1) 2: $t3 := read_ref($t2) 3: $t4 := 1 4: $t5 := +($t3, $t4) 5: $t6 := move($t0) 6: $t7 := borrow_field.f($t6) 7: write_ref($t7, $t5) 8: return () } ============ after pipeline `read_write_set` ================ [variant baseline] fun Counter::call_increment1($t0|s: &mut Counter::S) { var $t1: &mut Counter::S var $t2: &mut u64 # Accesses: # Formal(0): Read # Formal(0)/f: ReadWrite # # Locals: # 0: $t1 := move($t0) 1: $t2 := borrow_field.f($t1) 2: Counter::increment1($t2) 3: return () } [variant baseline] fun Counter::call_increment2($t0|a: address) { var $t1: address var $t2: &mut Counter::S # Accesses: # Formal(0): Read # Formal(0)/0x1::Counter::S: Read # Formal(0)/0x1::Counter::S/f: ReadWrite # # Locals: # 0: $t1 := move($t0) 1: $t2 := borrow_global($t1) 2: Counter::increment2($t2) 3: return () } [variant baseline] fun Counter::increment1($t0|i: &mut u64) { var $t1: &mut u64 var $t2: u64 var $t3: u64 var $t4: u64 var $t5: &mut u64 # Accesses: # Formal(0): ReadWrite # # Locals: # 0: $t1 := copy($t0) 1: $t2 := read_ref($t1) 2: $t3 := 1 3: $t4 := +($t2, $t3) 4: $t5 := move($t0) 5: write_ref($t5, $t4) 6: return () } [variant baseline] fun Counter::increment2($t0|s: &mut Counter::S) { var $t1: &mut Counter::S var $t2: &mut u64 var $t3: u64 var $t4: u64 var $t5: u64 var $t6: &mut Counter::S var $t7: &mut u64 # Accesses: # Formal(0): Read # Formal(0)/f: ReadWrite # # Locals: # 0: $t1 := copy($t0) 1: $t2 := borrow_field.f($t1) 2: $t3 := read_ref($t2) 3: $t4 := 1 4: $t5 := +($t3, $t4) 5: $t6 := move($t0) 6: $t7 := borrow_field.f($t6) 7: write_ref($t7, $t5) 8: return () }