============ initial translation from Move ================
[variant baseline]
fun TestBorrow::test1(): TestBorrow::R {
var $t0|r: TestBorrow::R
var $t1|r_ref: &mut TestBorrow::R
var $t2|x_ref: &mut u64
var $t3: u64
var $t4: TestBorrow::R
var $t5: &mut TestBorrow::R
var $t6: &mut TestBorrow::R
var $t7: &mut u64
var $t8: u64
var $t9: &mut u64
var $t10: TestBorrow::R
0: $t3 := 3
1: $t4 := pack TestBorrow::R($t3)
2: $t0 := $t4
3: $t5 := borrow_local($t0)
4: $t1 := $t5
5: $t6 := move($t1)
6: $t7 := borrow_field<TestBorrow::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 TestBorrow::test2($t0|x_ref: &mut u64, $t1|v: u64) {
var $t2: u64
var $t3: &mut u64
0: $t2 := move($t1)
1: $t3 := move($t0)
2: write_ref($t3, $t2)
3: return ()
}
[variant baseline]
public fun TestBorrow::test3($t0|r_ref: &mut TestBorrow::R, $t1|v: u64) {
var $t2|x_ref: &mut u64
var $t3: &mut TestBorrow::R
var $t4: &mut u64
var $t5: &mut u64
var $t6: u64
0: $t3 := move($t0)
1: $t4 := borrow_field<TestBorrow::R>.x($t3)
2: $t2 := $t4
3: $t5 := move($t2)
4: $t6 := move($t1)
5: TestBorrow::test2($t5, $t6)
6: return ()
}
[variant baseline]
fun TestBorrow::test4(): TestBorrow::R {
var $t0|r: TestBorrow::R
var $t1|r_ref: &mut TestBorrow::R
var $t2: u64
var $t3: TestBorrow::R
var $t4: &mut TestBorrow::R
var $t5: &mut TestBorrow::R
var $t6: u64
var $t7: TestBorrow::R
0: $t2 := 3
1: $t3 := pack TestBorrow::R($t2)
2: $t0 := $t3
3: $t4 := borrow_local($t0)
4: $t1 := $t4
5: $t5 := move($t1)
6: $t6 := 0
7: TestBorrow::test3($t5, $t6)
8: $t7 := move($t0)
9: return $t7
}
[variant baseline]
public fun TestBorrow::test5($t0|r_ref: &mut TestBorrow::R): &mut u64 {
var $t1: &mut TestBorrow::R
var $t2: &mut u64
0: $t1 := move($t0)
1: $t2 := borrow_field<TestBorrow::R>.x($t1)
2: return $t2
}
[variant baseline]
fun TestBorrow::test6(): TestBorrow::R {
var $t0|r: TestBorrow::R
var $t1|r_ref: &mut TestBorrow::R
var $t2|x_ref: &mut u64
var $t3: u64
var $t4: TestBorrow::R
var $t5: &mut TestBorrow::R
var $t6: &mut TestBorrow::R
var $t7: &mut u64
var $t8: &mut u64
var $t9: u64
var $t10: TestBorrow::R
0: $t3 := 3
1: $t4 := pack TestBorrow::R($t3)
2: $t0 := $t4
3: $t5 := borrow_local($t0)
4: $t1 := $t5
5: $t6 := move($t1)
6: $t7 := TestBorrow::test5($t6)
7: $t2 := $t7
8: $t8 := move($t2)
9: $t9 := 0
10: TestBorrow::test2($t8, $t9)
11: $t10 := move($t0)
12: return $t10
}
[variant baseline]
fun TestBorrow::test7($t0|b: bool) {
var $t1|r1: TestBorrow::R
var $t2|r2: TestBorrow::R
var $t3|r_ref: &mut TestBorrow::R
var $t4: u64
var $t5: TestBorrow::R
var $t6: u64
var $t7: TestBorrow::R
var $t8: &mut TestBorrow::R
var $t9: bool
var $t10: &mut TestBorrow::R
var $t11: &mut TestBorrow::R
var $t12: &mut TestBorrow::R
var $t13: u64
0: $t4 := 3
1: $t5 := pack TestBorrow::R($t4)
2: $t1 := $t5
3: $t6 := 4
4: $t7 := pack TestBorrow::R($t6)
5: $t2 := $t7
6: $t8 := borrow_local($t1)
7: $t3 := $t8
8: $t9 := move($t0)
9: if ($t9) goto 10 else goto 16
10: label L0
11: $t10 := move($t3)
12: destroy($t10)
13: $t11 := borrow_local($t2)
14: $t3 := $t11
15: goto 16
16: label L2
17: $t12 := move($t3)
18: $t13 := 0
19: TestBorrow::test3($t12, $t13)
20: return ()
}
[variant baseline]
fun TestBorrow::test8($t0|b: bool, $t1|n: u64, $t2|r_ref: &mut TestBorrow::R) {
var $t3|r1: TestBorrow::R
var $t4|r2: TestBorrow::R
var $t5|t_ref: &mut TestBorrow::R
var $t6: u64
var $t7: TestBorrow::R
var $t8: u64
var $t9: TestBorrow::R
var $t10: &mut TestBorrow::R
var $t11: u64
var $t12: u64
var $t13: bool
var $t14: &mut TestBorrow::R
var $t15: u64
var $t16: u64
var $t17: u64
var $t18: u64
var $t19: bool
var $t20: &mut TestBorrow::R
var $t21: &mut TestBorrow::R
var $t22: u64
var $t23: u64
var $t24: u64
var $t25: bool
var $t26: &mut TestBorrow::R
var $t27: &mut TestBorrow::R
var $t28: u64
var $t29: &mut TestBorrow::R
var $t30: &mut TestBorrow::R
var $t31: u64
0: $t6 := 3
1: $t7 := pack TestBorrow::R($t6)
2: $t3 := $t7
3: $t8 := 4
4: $t9 := pack TestBorrow::R($t8)
5: $t4 := $t9
6: $t10 := borrow_local($t4)
7: $t5 := $t10
8: goto 9
9: label L7
10: $t11 := 0
11: $t12 := copy($t1)
12: $t13 := <($t11, $t12)
13: if ($t13) goto 14 else goto 37
14: label L0
15: $t14 := move($t5)
16: destroy($t14)
17: $t15 := copy($t1)
18: $t16 := 2
19: $t17 := /($t15, $t16)
20: $t18 := 0
21: $t19 := ==($t17, $t18)
22: if ($t19) goto 23 else goto 27
23: label L3
24: $t20 := borrow_local($t3)
25: $t5 := $t20
26: goto 31
27: label L5
28: $t21 := borrow_local($t4)
29: $t5 := $t21
30: goto 31
31: label L6
32: $t22 := move($t1)
33: $t23 := 1
34: $t24 := -($t22, $t23)
35: $t1 := $t24
36: goto 9
37: label L2
38: $t25 := move($t0)
39: if ($t25) goto 40 else goto 47
40: label L8
41: $t26 := move($t5)
42: destroy($t26)
43: $t27 := move($t2)
44: $t28 := 0
45: TestBorrow::test3($t27, $t28)
46: goto 54
47: label L10
48: $t29 := move($t2)
49: destroy($t29)
50: $t30 := move($t5)
51: $t31 := 0
52: TestBorrow::test3($t30, $t31)
53: goto 54
54: label L11
55: return ()
}
============ after pipeline `borrow` ================
[variant baseline]
fun TestBorrow::test1(): TestBorrow::R {
var $t0|r: TestBorrow::R
var $t1|r_ref: &mut TestBorrow::R
var $t2|x_ref: &mut u64
var $t3: u64
var $t4: &mut TestBorrow::R
var $t5: &mut u64
var $t6: u64
var $t7: TestBorrow::R
0: $t3 := 3
1: $t0 := pack TestBorrow::R($t3)
2: $t4 := borrow_local($t0)
# live_nodes: Reference($t4)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}
3: $t5 := borrow_field<TestBorrow::R>.x($t4)
# live_nodes: Reference($t5)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
4: $t6 := 0
# live_nodes: Reference($t5)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
5: write_ref($t5, $t6)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
6: $t7 := move($t0)
# live_nodes: LocalRoot($t7)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
7: return $t7
}
[variant baseline]
fun TestBorrow::test2($t0|x_ref: &mut u64, $t1|v: u64) {
# live_nodes: LocalRoot($t1), Reference($t0)
0: write_ref($t0, $t1)
# live_nodes: LocalRoot($t1), Reference($t0)
1: trace_local[x_ref]($t0)
# live_nodes: LocalRoot($t1)
2: return ()
}
[variant baseline]
public fun TestBorrow::test3($t0|r_ref: &mut TestBorrow::R, $t1|v: u64) {
var $t2|x_ref: &mut u64
var $t3: &mut u64
# live_nodes: LocalRoot($t1), Reference($t0)
0: $t3 := borrow_field<TestBorrow::R>.x($t0)
# live_nodes: LocalRoot($t1), Reference($t0), Reference($t3)
# borrowed_by: Reference($t0) -> {(.x (u64), Reference($t3))}
# borrows_from: Reference($t3) -> {(.x (u64), Reference($t0))}
1: TestBorrow::test2($t3, $t1)
# live_nodes: LocalRoot($t1), Reference($t0)
# borrowed_by: Reference($t0) -> {(.x (u64), Reference($t3))}
# borrows_from: Reference($t3) -> {(.x (u64), Reference($t0))}
2: trace_local[r_ref]($t0)
# live_nodes: LocalRoot($t1)
# borrowed_by: Reference($t0) -> {(.x (u64), Reference($t3))}
# borrows_from: Reference($t3) -> {(.x (u64), Reference($t0))}
3: return ()
}
[variant baseline]
fun TestBorrow::test4(): TestBorrow::R {
var $t0|r: TestBorrow::R
var $t1|r_ref: &mut TestBorrow::R
var $t2: u64
var $t3: &mut TestBorrow::R
var $t4: u64
var $t5: TestBorrow::R
0: $t2 := 3
1: $t0 := pack TestBorrow::R($t2)
2: $t3 := borrow_local($t0)
# live_nodes: Reference($t3)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, LocalRoot($t0))}
3: $t4 := 0
# live_nodes: Reference($t3)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, LocalRoot($t0))}
4: TestBorrow::test3($t3, $t4)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, LocalRoot($t0))}
5: $t5 := move($t0)
# live_nodes: LocalRoot($t5)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, LocalRoot($t0))}
6: return $t5
}
[variant baseline]
public fun TestBorrow::test5($t0|r_ref: &mut TestBorrow::R): &mut u64 {
var $t1: &mut u64
# live_nodes: Reference($t0)
0: $t1 := borrow_field<TestBorrow::R>.x($t0)
# live_nodes: Reference($t0), Reference($t1)
# borrowed_by: Reference($t0) -> {(.x (u64), Reference($t1))}
# borrows_from: Reference($t1) -> {(.x (u64), Reference($t0))}
1: trace_local[r_ref]($t0)
# live_nodes: Reference($t1)
# borrowed_by: Reference($t0) -> {(.x (u64), Reference($t1))}
# borrows_from: Reference($t1) -> {(.x (u64), Reference($t0))}
2: return $t1
}
[variant baseline]
fun TestBorrow::test6(): TestBorrow::R {
var $t0|r: TestBorrow::R
var $t1|r_ref: &mut TestBorrow::R
var $t2|x_ref: &mut u64
var $t3: u64
var $t4: &mut TestBorrow::R
var $t5: &mut u64
var $t6: u64
var $t7: TestBorrow::R
0: $t3 := 3
1: $t0 := pack TestBorrow::R($t3)
2: $t4 := borrow_local($t0)
# live_nodes: Reference($t4)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}
3: $t5 := TestBorrow::test5($t4)
# live_nodes: Reference($t5)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
4: $t6 := 0
# live_nodes: Reference($t5)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
5: TestBorrow::test2($t5, $t6)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
6: $t7 := move($t0)
# live_nodes: LocalRoot($t7)
# borrowed_by: LocalRoot($t0) -> {(@, Reference($t4))}, Reference($t4) -> {(.x (u64), Reference($t5))}
# borrows_from: Reference($t4) -> {(@, LocalRoot($t0))}, Reference($t5) -> {(.x (u64), Reference($t4))}
7: return $t7
}
[variant baseline]
fun TestBorrow::test7($t0|b: bool) {
var $t1|r1: TestBorrow::R
var $t2|r2: TestBorrow::R
var $t3|r_ref: &mut TestBorrow::R
var $t4: u64
var $t5: u64
var $t6: &mut TestBorrow::R
var $t7: &mut TestBorrow::R
var $t8: u64
# live_nodes: LocalRoot($t0)
0: $t4 := 3
# live_nodes: LocalRoot($t0)
1: $t1 := pack TestBorrow::R($t4)
# live_nodes: LocalRoot($t0)
2: $t5 := 4
# live_nodes: LocalRoot($t0)
3: $t2 := pack TestBorrow::R($t5)
# live_nodes: LocalRoot($t0)
4: $t6 := borrow_local($t1)
# live_nodes: LocalRoot($t0), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}
# borrows_from: Reference($t6) -> {(@, LocalRoot($t1))}
5: $t3 := $t6
# live_nodes: LocalRoot($t0), Reference($t3), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
6: if ($t0) goto 15 else goto 18
# live_nodes: LocalRoot($t0), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
7: label L0
# live_nodes: LocalRoot($t0), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
8: destroy($t6)
# live_nodes: LocalRoot($t0)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
9: $t7 := borrow_local($t2)
# live_nodes: LocalRoot($t0), Reference($t7)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))}
10: $t3 := $t7
# live_nodes: LocalRoot($t0), Reference($t3)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))}
11: label L2
# live_nodes: LocalRoot($t0), Reference($t3)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))}
12: $t8 := 0
# live_nodes: LocalRoot($t0), Reference($t3)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))}
13: TestBorrow::test3($t3, $t8)
# live_nodes: LocalRoot($t0)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, LocalRoot($t2) -> {(@, Reference($t7))}, Reference($t6) -> {(@, Reference($t3))}, Reference($t7) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6)), (@, Reference($t7))}, Reference($t6) -> {(@, LocalRoot($t1))}, Reference($t7) -> {(@, LocalRoot($t2))}
14: return ()
# live_nodes: LocalRoot($t0), Reference($t3), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
15: label L3
# live_nodes: LocalRoot($t0), Reference($t3), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
16: destroy($t3)
# live_nodes: LocalRoot($t0), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
17: goto 7
# live_nodes: LocalRoot($t0), Reference($t3), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
18: label L4
# live_nodes: LocalRoot($t0), Reference($t3), Reference($t6)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
19: destroy($t6)
# live_nodes: LocalRoot($t0), Reference($t3)
# borrowed_by: LocalRoot($t1) -> {(@, Reference($t6))}, Reference($t6) -> {(@, Reference($t3))}
# borrows_from: Reference($t3) -> {(@, Reference($t6))}, Reference($t6) -> {(@, LocalRoot($t1))}
20: goto 11
}
[variant baseline]
fun TestBorrow::test8($t0|b: bool, $t1|n: u64, $t2|r_ref: &mut TestBorrow::R) {
var $t3|r1: TestBorrow::R
var $t4|r2: TestBorrow::R
var $t5|t_ref: &mut TestBorrow::R
var $t6: u64
var $t7: u64
var $t8: &mut TestBorrow::R
var $t9: u64
var $t10: bool
var $t11: u64
var $t12: u64
var $t13: u64
var $t14: bool
var $t15: &mut TestBorrow::R
var $t16: &mut TestBorrow::R
var $t17: u64
var $t18: u64
var $t19: u64
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
0: $t6 := 3
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
1: $t3 := pack TestBorrow::R($t6)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
2: $t7 := 4
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
3: $t4 := pack TestBorrow::R($t7)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
4: $t8 := borrow_local($t4)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t8)
# borrowed_by: LocalRoot($t4) -> {(@, Reference($t8))}
# borrows_from: Reference($t8) -> {(@, LocalRoot($t4))}
5: $t5 := $t8
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
6: label L7
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
7: $t9 := 0
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
8: $t10 := <($t9, $t1)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
9: if ($t10) goto 10 else goto 28
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
10: label L0
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
11: destroy($t5)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
12: $t11 := 2
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
13: $t12 := /($t1, $t11)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
14: $t13 := 0
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
15: $t14 := ==($t12, $t13)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
16: if ($t14) goto 17 else goto 21
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
17: label L3
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
18: $t15 := borrow_local($t3)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t15)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
19: $t5 := $t15
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
20: goto 24
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
21: label L5
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
22: $t16 := borrow_local($t4)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t16)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
23: $t5 := $t16
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
24: label L6
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
25: $t17 := 1
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
26: $t1 := -($t1, $t17)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
27: goto 6
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
28: label L2
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
29: if ($t0) goto 30 else goto 35
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
30: label L8
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
31: destroy($t5)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
32: $t18 := 0
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
33: TestBorrow::test3($t2, $t18)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
34: goto 39
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
35: label L10
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
36: destroy($t2)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
37: $t19 := 0
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2), Reference($t5)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
38: TestBorrow::test3($t5, $t19)
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
39: label L11
# live_nodes: LocalRoot($t0), LocalRoot($t1), Reference($t2)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
40: trace_local[r_ref]($t2)
# live_nodes: LocalRoot($t0), LocalRoot($t1)
# borrowed_by: LocalRoot($t3) -> {(@, Reference($t15))}, LocalRoot($t4) -> {(@, Reference($t8)), (@, Reference($t16))}, Reference($t8) -> {(@, Reference($t5))}, Reference($t15) -> {(@, Reference($t5))}, Reference($t16) -> {(@, Reference($t5))}
# borrows_from: Reference($t5) -> {(@, Reference($t8)), (@, Reference($t15)), (@, Reference($t16))}, Reference($t8) -> {(@, LocalRoot($t4))}, Reference($t15) -> {(@, LocalRoot($t3))}, Reference($t16) -> {(@, LocalRoot($t4))}
41: return ()
}
==== borrow analysis summaries ====
fun TestBorrow::test5[baseline]
borrowed_by: Reference($t0) -> {(.x (u64), Return(0))}
borrows_from: Return(0) -> {(.x (u64), Reference($t0))}