============ initial translation from Move ================
[variant baseline]
fun TestEliminateImmRefs::test1(): TestEliminateImmRefs::R {
var $t0|r: TestEliminateImmRefs::R
var $t1|r_ref: &mut TestEliminateImmRefs::R
var $t2|x_ref: &mut u64
var $t3: u64
var $t4: TestEliminateImmRefs::R
var $t5: &mut TestEliminateImmRefs::R
var $t6: &mut TestEliminateImmRefs::R
var $t7: &mut u64
var $t8: u64
var $t9: &mut u64
var $t10: TestEliminateImmRefs::R
0: $t3 := 3
1: $t4 := pack TestEliminateImmRefs::R($t3)
2: $t0 := $t4
3: $t5 := borrow_local($t0)
4: $t1 := $t5
5: $t6 := move($t1)
6: $t7 := borrow_field<TestEliminateImmRefs::R>.x($t6)
7: $t2 := $t7
8: $t8 := 0
9: $t9 := move($t2)
10: write_ref($t9, $t8)
11: $t10 := move($t0)
12: return $t10
}
[variant baseline]
fun TestEliminateImmRefs::test2(): u64 {
var $t0|r: TestEliminateImmRefs::R
var $t1|r_ref: &TestEliminateImmRefs::R
var $t2|x_ref: &u64
var $t3: u64
var $t4: TestEliminateImmRefs::R
var $t5: &TestEliminateImmRefs::R
var $t6: &TestEliminateImmRefs::R
var $t7: &u64
var $t8: &u64
var $t9: u64
0: $t3 := 3
1: $t4 := pack TestEliminateImmRefs::R($t3)
2: $t0 := $t4
3: $t5 := borrow_local($t0)
4: $t1 := $t5
5: $t6 := move($t1)
6: $t7 := borrow_field<TestEliminateImmRefs::R>.x($t6)
7: $t2 := $t7
8: $t8 := move($t2)
9: $t9 := read_ref($t8)
10: return $t9
}
[variant baseline]
fun TestEliminateImmRefs::test3($t0|r_ref: &TestEliminateImmRefs::R): u64 {
var $t1|x_ref: &u64
var $t2: &TestEliminateImmRefs::R
var $t3: &u64
var $t4: &u64
var $t5: u64
0: $t2 := move($t0)
1: $t3 := borrow_field<TestEliminateImmRefs::R>.x($t2)
2: $t1 := $t3
3: $t4 := move($t1)
4: $t5 := read_ref($t4)
5: return $t5
}
[variant baseline]
fun TestEliminateImmRefs::test4(): u64 {
var $t0|r: TestEliminateImmRefs::R
var $t1|r_ref: &TestEliminateImmRefs::R
var $t2: u64
var $t3: TestEliminateImmRefs::R
var $t4: &TestEliminateImmRefs::R
var $t5: &TestEliminateImmRefs::R
var $t6: u64
0: $t2 := 3
1: $t3 := pack TestEliminateImmRefs::R($t2)
2: $t0 := $t3
3: $t4 := borrow_local($t0)
4: $t1 := $t4
5: $t5 := move($t1)
6: $t6 := TestEliminateImmRefs::test3($t5)
7: return $t6
}
============ after pipeline `eliminate_imm_refs` ================
[variant baseline]
fun TestEliminateImmRefs::test1(): TestEliminateImmRefs::R {
var $t0|r: TestEliminateImmRefs::R
var $t1|r_ref: &mut TestEliminateImmRefs::R
var $t2|x_ref: &mut u64
var $t3: u64
var $t4: TestEliminateImmRefs::R
var $t5: &mut TestEliminateImmRefs::R
var $t6: &mut TestEliminateImmRefs::R
var $t7: &mut u64
var $t8: u64
var $t9: &mut u64
var $t10: TestEliminateImmRefs::R
0: $t3 := 3
1: $t4 := pack TestEliminateImmRefs::R($t3)
2: $t0 := $t4
3: $t5 := borrow_local($t0)
4: $t1 := $t5
5: $t6 := move($t1)
6: $t7 := borrow_field<TestEliminateImmRefs::R>.x($t6)
7: $t2 := $t7
8: $t8 := 0
9: $t9 := move($t2)
10: write_ref($t9, $t8)
11: $t10 := move($t0)
12: return $t10
}
[variant baseline]
fun TestEliminateImmRefs::test2(): u64 {
var $t0|r: TestEliminateImmRefs::R
var $t1|r_ref: TestEliminateImmRefs::R
var $t2|x_ref: u64
var $t3: u64
var $t4: TestEliminateImmRefs::R
var $t5: TestEliminateImmRefs::R
var $t6: TestEliminateImmRefs::R
var $t7: u64
var $t8: u64
var $t9: u64
0: $t3 := 3
1: $t4 := pack TestEliminateImmRefs::R($t3)
2: $t0 := $t4
3: $t5 := copy($t0)
4: $t1 := $t5
5: $t6 := move($t1)
6: $t7 := get_field<TestEliminateImmRefs::R>.x($t6)
7: $t2 := $t7
8: $t8 := move($t2)
9: $t9 := move($t8)
10: return $t9
}
[variant baseline]
fun TestEliminateImmRefs::test3($t0|r_ref: TestEliminateImmRefs::R): u64 {
var $t1|x_ref: u64
var $t2: TestEliminateImmRefs::R
var $t3: u64
var $t4: u64
var $t5: u64
0: $t2 := move($t0)
1: $t3 := get_field<TestEliminateImmRefs::R>.x($t2)
2: $t1 := $t3
3: $t4 := move($t1)
4: $t5 := move($t4)
5: return $t5
}
[variant baseline]
fun TestEliminateImmRefs::test4(): u64 {
var $t0|r: TestEliminateImmRefs::R
var $t1|r_ref: TestEliminateImmRefs::R
var $t2: u64
var $t3: TestEliminateImmRefs::R
var $t4: TestEliminateImmRefs::R
var $t5: TestEliminateImmRefs::R
var $t6: u64
0: $t2 := 3
1: $t3 := pack TestEliminateImmRefs::R($t2)
2: $t0 := $t3
3: $t4 := copy($t0)
4: $t1 := $t4
5: $t5 := move($t1)
6: $t6 := TestEliminateImmRefs::test3($t5)
7: return $t6
}