============ initial translation from Move ================
[variant baseline]
public fun CopyStruct::g() {
var $t0|s1: CopyStruct::S
var $t1|s2: CopyStruct::S
var $t2: address
var $t3: CopyStruct::S
var $t4: u64
var $t5: &CopyStruct::S
var $t6: &address
var $t7: address
var $t8: &mut CopyStruct::G
var $t9: &mut u64
var $t10: address
var $t11: CopyStruct::S
var $t12: u64
var $t13: &CopyStruct::S
var $t14: &address
var $t15: address
var $t16: &mut CopyStruct::G
var $t17: &mut u64
0: $t2 := 0x7
1: $t3 := CopyStruct::ret_struct_copy($t2)
2: $t0 := $t3
3: $t4 := 1
4: $t5 := borrow_local($t0)
5: $t6 := borrow_field<CopyStruct::S>.a($t5)
6: $t7 := read_ref($t6)
7: $t8 := borrow_global<CopyStruct::G>($t7)
8: $t9 := borrow_field<CopyStruct::G>.f($t8)
9: write_ref($t9, $t4)
10: $t10 := 0x7
11: $t11 := CopyStruct::ret_struct($t10)
12: $t1 := $t11
13: $t12 := 2
14: $t13 := borrow_local($t1)
15: $t14 := borrow_field<CopyStruct::S>.a($t13)
16: $t15 := read_ref($t14)
17: $t16 := borrow_global<CopyStruct::G>($t15)
18: $t17 := borrow_field<CopyStruct::G>.f($t16)
19: write_ref($t17, $t12)
20: return ()
}
[variant baseline]
public fun CopyStruct::ret_struct($t0|a: address): CopyStruct::S {
var $t1: address
var $t2: CopyStruct::S
0: $t1 := move($t0)
1: $t2 := pack CopyStruct::S($t1)
2: return $t2
}
[variant baseline]
public fun CopyStruct::ret_struct_copy($t0|a: address): CopyStruct::S {
var $t1|s: CopyStruct::S
var $t2: address
var $t3: CopyStruct::S
var $t4: &CopyStruct::S
var $t5: CopyStruct::S
0: $t2 := move($t0)
1: $t3 := pack CopyStruct::S($t2)
2: $t1 := $t3
3: $t4 := borrow_local($t1)
4: $t5 := read_ref($t4)
5: return $t5
}
============ after pipeline `read_write_set` ================
[variant baseline]
public fun CopyStruct::g() {
var $t0|s1: CopyStruct::S
var $t1|s2: CopyStruct::S
var $t2: address
var $t3: CopyStruct::S
var $t4: u64
var $t5: &CopyStruct::S
var $t6: &address
var $t7: address
var $t8: &mut CopyStruct::G
var $t9: &mut u64
var $t10: address
var $t11: CopyStruct::S
var $t12: u64
var $t13: &CopyStruct::S
var $t14: &address
var $t15: address
var $t16: &mut CopyStruct::G
var $t17: &mut u64
# Accesses:
# 0x7/0x1::CopyStruct::G/f: Write
#
# Locals:
#
0: $t2 := 0x7
1: $t3 := CopyStruct::ret_struct_copy($t2)
2: $t0 := $t3
3: $t4 := 1
4: $t5 := borrow_local($t0)
5: $t6 := borrow_field<CopyStruct::S>.a($t5)
6: $t7 := read_ref($t6)
7: $t8 := borrow_global<CopyStruct::G>($t7)
8: $t9 := borrow_field<CopyStruct::G>.f($t8)
9: write_ref($t9, $t4)
10: $t10 := 0x7
11: $t11 := CopyStruct::ret_struct($t10)
12: $t1 := $t11
13: $t12 := 2
14: $t13 := borrow_local($t1)
15: $t14 := borrow_field<CopyStruct::S>.a($t13)
16: $t15 := read_ref($t14)
17: $t16 := borrow_global<CopyStruct::G>($t15)
18: $t17 := borrow_field<CopyStruct::G>.f($t16)
19: write_ref($t17, $t12)
20: return ()
}
[variant baseline]
public fun CopyStruct::ret_struct($t0|a: address): CopyStruct::S {
var $t1: address
var $t2: CopyStruct::S
# Accesses:
# Formal(0): Read
#
# Locals:
# Ret(0)/a: Formal(0)
#
0: $t1 := move($t0)
1: $t2 := pack CopyStruct::S($t1)
2: return $t2
}
[variant baseline]
public fun CopyStruct::ret_struct_copy($t0|a: address): CopyStruct::S {
var $t1|s: CopyStruct::S
var $t2: address
var $t3: CopyStruct::S
var $t4: &CopyStruct::S
var $t5: CopyStruct::S
# Accesses:
# Formal(0): Read
#
# Locals:
# Ret(0)/a: Formal(0)
#
0: $t2 := move($t0)
1: $t3 := pack CopyStruct::S($t2)
2: $t1 := $t3
3: $t4 := borrow_local($t1)
4: $t5 := read_ref($t4)
5: return $t5
}