Skip to content

Commit 00aedfc

Browse files
Elias Ellisonfacebook-github-bot
Elias Ellison
authored andcommitted
constant pooling pass (pytorch#12222)
Summary: Add a pass to move all constants to the beginning of the graph, and deduplicate. This extends pytorch#10231 to also handle constants introduced in inlining, constant propagation, etc. Pull Request resolved: pytorch#12222 Reviewed By: driazati Differential Revision: D10201616 Pulled By: eellison fbshipit-source-id: bc9c5be26868c8b5414257a0d4462de025aeb9bd
1 parent 83b4dc6 commit 00aedfc

File tree

52 files changed

+620
-500
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+620
-500
lines changed

test/expect/TestBatched.test_for.expect

+6-7
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@ graph(%x.1_data : Dynamic
44
%y_data : Dynamic
55
%y_mask : Dynamic
66
%y_dims : Dynamic) {
7-
%6 : int = prim::Constant[value=10]()
7+
%6 : int = prim::Constant[value=1]()
88
%7 : bool = prim::Constant[value=1]()
9-
%x : Dynamic, %9 : Dynamic, %10 : Dynamic = prim::Loop(%6, %7, %x.1_data, %x.1_mask, %x.1_dims)
9+
%8 : int = prim::Constant[value=10]()
10+
%x : Dynamic, %10 : Dynamic, %11 : Dynamic = prim::Loop(%8, %7, %x.1_data, %x.1_mask, %x.1_dims)
1011
block0(%loop_num : int, %5_data : Dynamic, %5_mask : Dynamic, %5_dims : Dynamic) {
11-
%15 : int = prim::Constant[value=1]()
12-
%16 : Long() = prim::NumToTensor(%15)
12+
%16 : Long() = prim::NumToTensor(%6)
1313
%alpha : float = prim::TensorToNum(%16)
1414
%data.1 : Dynamic = aten::add(%5_data, %y_data, %alpha)
1515
%mask : Dynamic = aten::mul(%5_mask, %y_mask)
1616
%dims : Dynamic = aten::__or__(%5_dims, %y_dims)
17-
%21 : bool = prim::Constant[value=1]()
1817
%data : Dynamic = aten::where(%mask, %data.1, %5_data)
19-
-> (%21, %data, %mask, %dims)
18+
-> (%7, %data, %mask, %dims)
2019
}
21-
return (%x, %9, %10);
20+
return (%x, %10, %11);
2221
}

test/expect/TestBatched.test_if_else.expect

+16-18
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,36 @@ graph(%a.1_data : Dynamic
44
%b_data : Dynamic
55
%b_mask : Dynamic
66
%b_dims : Dynamic) {
7-
%6 : Dynamic = aten::gt(%a.1_data, %b_data)
8-
%7 : Dynamic = aten::mul(%a.1_mask, %b_mask)
9-
%8 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
10-
%9 : bool = prim::TensorToBool(%6)
11-
%10 : int = prim::Constant[value=1]()
12-
%11 : Long() = prim::NumToTensor(%10)
7+
%6 : int = prim::Constant[value=1]()
8+
%7 : Dynamic = aten::gt(%a.1_data, %b_data)
9+
%8 : Dynamic = aten::mul(%a.1_mask, %b_mask)
10+
%9 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
11+
%10 : bool = prim::TensorToBool(%7)
12+
%11 : Long() = prim::NumToTensor(%6)
1313
%alpha.1 : float = prim::TensorToNum(%11)
1414
%data.1 : Dynamic = aten::add(%a.1_data, %b_data, %alpha.1)
1515
%mask.1 : Dynamic = aten::mul(%a.1_mask, %b_mask)
1616
%dims.1 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
17-
%16 : int = prim::Constant[value=1]()
18-
%17 : Long() = prim::NumToTensor(%16)
19-
%alpha : float = prim::TensorToNum(%17)
17+
%16 : Long() = prim::NumToTensor(%6)
18+
%alpha : float = prim::TensorToNum(%16)
2019
%data.4 : Dynamic = aten::sub(%a.1_data, %b_data, %alpha)
2120
%mask : Dynamic = aten::mul(%a.1_mask, %b_mask)
2221
%dims : Dynamic = aten::__or__(%a.1_dims, %b_dims)
22+
%21 : bool = prim::Constant[value=1]()
2323
%22 : int = prim::Constant[value=1]()
24-
%23 : Dynamic = aten::type_as(%7, %6)
25-
%cond_mask.1 : Dynamic = aten::mul(%6, %23)
24+
%23 : Dynamic = aten::type_as(%8, %7)
25+
%cond_mask.1 : Dynamic = aten::mul(%7, %23)
2626
%25 : int = aten::dim(%cond_mask.1)
2727
%26 : bool = aten::eq(%25, %22)
2828
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%26)
2929
block0() {
3030
%30 : int = aten::dim(%data.1)
3131
%31 : int = aten::sub(%30, %22)
32-
%32 : bool = prim::Constant[value=1]()
33-
%data.3 : Dynamic = prim::Loop(%31, %32, %cond_mask.1)
34-
block0(%_ : int, %35 : Dynamic) {
35-
%36 : int = aten::dim(%35)
36-
%data.2 : Dynamic = aten::unsqueeze(%35, %36)
37-
%38 : bool = prim::Constant[value=1]()
38-
-> (%38, %data.2)
32+
%data.3 : Dynamic = prim::Loop(%31, %21, %cond_mask.1)
33+
block0(%_ : int, %34 : Dynamic) {
34+
%35 : int = aten::dim(%34)
35+
%data.2 : Dynamic = aten::unsqueeze(%34, %35)
36+
-> (%21, %data.2)
3937
}
4038
%cond_data.1 : Dynamic = aten::expand_as(%data.3, %data.1)
4139
%cond_mask.2 : Dynamic = aten::expand_as(%data.3, %mask.1)

test/expect/TestBatched.test_if_else_with_scalar.expect

+17-19
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,37 @@ graph(%a.1_data : Dynamic
44
%b_data : Dynamic
55
%b_mask : Dynamic
66
%b_dims : Dynamic) {
7-
%6 : float = prim::Constant[value=0.1]()
8-
%7 : Float() = prim::NumToTensor(%6)
9-
%other : float = prim::TensorToNum(%7)
10-
%9 : Dynamic = aten::gt(%a.1_data, %other)
11-
%10 : bool = prim::TensorToBool(%9)
12-
%11 : int = prim::Constant[value=1]()
13-
%12 : Long() = prim::NumToTensor(%11)
7+
%6 : int = prim::Constant[value=1]()
8+
%7 : float = prim::Constant[value=0.1]()
9+
%8 : Float() = prim::NumToTensor(%7)
10+
%other : float = prim::TensorToNum(%8)
11+
%10 : Dynamic = aten::gt(%a.1_data, %other)
12+
%11 : bool = prim::TensorToBool(%10)
13+
%12 : Long() = prim::NumToTensor(%6)
1414
%alpha.1 : float = prim::TensorToNum(%12)
1515
%data.1 : Dynamic = aten::add(%a.1_data, %b_data, %alpha.1)
1616
%mask.1 : Dynamic = aten::mul(%a.1_mask, %b_mask)
1717
%dims.1 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
18-
%17 : int = prim::Constant[value=1]()
19-
%18 : Long() = prim::NumToTensor(%17)
20-
%alpha : float = prim::TensorToNum(%18)
18+
%17 : Long() = prim::NumToTensor(%6)
19+
%alpha : float = prim::TensorToNum(%17)
2120
%data.4 : Dynamic = aten::sub(%a.1_data, %b_data, %alpha)
2221
%mask : Dynamic = aten::mul(%a.1_mask, %b_mask)
2322
%dims : Dynamic = aten::__or__(%a.1_dims, %b_dims)
23+
%22 : bool = prim::Constant[value=1]()
2424
%23 : int = prim::Constant[value=1]()
25-
%24 : Dynamic = aten::type_as(%a.1_mask, %9)
26-
%cond_mask.1 : Dynamic = aten::mul(%9, %24)
25+
%24 : Dynamic = aten::type_as(%a.1_mask, %10)
26+
%cond_mask.1 : Dynamic = aten::mul(%10, %24)
2727
%26 : int = aten::dim(%cond_mask.1)
2828
%27 : bool = aten::eq(%26, %23)
2929
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%27)
3030
block0() {
3131
%31 : int = aten::dim(%data.1)
3232
%32 : int = aten::sub(%31, %23)
33-
%33 : bool = prim::Constant[value=1]()
34-
%data.3 : Dynamic = prim::Loop(%32, %33, %cond_mask.1)
35-
block0(%_ : int, %36 : Dynamic) {
36-
%37 : int = aten::dim(%36)
37-
%data.2 : Dynamic = aten::unsqueeze(%36, %37)
38-
%39 : bool = prim::Constant[value=1]()
39-
-> (%39, %data.2)
33+
%data.3 : Dynamic = prim::Loop(%32, %22, %cond_mask.1)
34+
block0(%_ : int, %35 : Dynamic) {
35+
%36 : int = aten::dim(%35)
36+
%data.2 : Dynamic = aten::unsqueeze(%35, %36)
37+
-> (%22, %data.2)
4038
}
4139
%cond_data.1 : Dynamic = aten::expand_as(%data.3, %data.1)
4240
%cond_mask.2 : Dynamic = aten::expand_as(%data.3, %mask.1)

test/expect/TestBatched.test_if_noelse.expect

+17-18
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,31 @@ graph(%a.1_data : Dynamic
44
%b_data : Dynamic
55
%b_mask : Dynamic
66
%b_dims : Dynamic) {
7-
%6 : Dynamic = aten::gt(%a.1_data, %b_data)
8-
%7 : Dynamic = aten::mul(%a.1_mask, %b_mask)
9-
%8 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
10-
%9 : bool = prim::TensorToBool(%6)
11-
%10 : int = prim::Constant[value=1]()
12-
%11 : Long() = prim::NumToTensor(%10)
7+
%6 : int = prim::Constant[value=1]()
8+
%7 : Dynamic = aten::gt(%a.1_data, %b_data)
9+
%8 : Dynamic = aten::mul(%a.1_mask, %b_mask)
10+
%9 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
11+
%10 : bool = prim::TensorToBool(%7)
12+
%11 : Long() = prim::NumToTensor(%6)
1313
%alpha : float = prim::TensorToNum(%11)
1414
%data.1 : Dynamic = aten::add(%a.1_data, %b_data, %alpha)
1515
%mask : Dynamic = aten::mul(%a.1_mask, %b_mask)
1616
%dims : Dynamic = aten::__or__(%a.1_dims, %b_dims)
17-
%16 : int = prim::Constant[value=1]()
18-
%17 : Dynamic = aten::type_as(%7, %6)
19-
%cond_mask.1 : Dynamic = aten::mul(%6, %17)
20-
%19 : int = aten::dim(%cond_mask.1)
21-
%20 : bool = aten::eq(%19, %16)
22-
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%20)
17+
%16 : bool = prim::Constant[value=1]()
18+
%17 : int = prim::Constant[value=1]()
19+
%18 : Dynamic = aten::type_as(%8, %7)
20+
%cond_mask.1 : Dynamic = aten::mul(%7, %18)
21+
%20 : int = aten::dim(%cond_mask.1)
22+
%21 : bool = aten::eq(%20, %17)
23+
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%21)
2324
block0() {
24-
%24 : int = aten::dim(%data.1)
25-
%25 : int = aten::sub(%24, %16)
26-
%26 : bool = prim::Constant[value=1]()
27-
%data.3 : Dynamic = prim::Loop(%25, %26, %cond_mask.1)
25+
%25 : int = aten::dim(%data.1)
26+
%26 : int = aten::sub(%25, %17)
27+
%data.3 : Dynamic = prim::Loop(%26, %16, %cond_mask.1)
2828
block0(%_ : int, %29 : Dynamic) {
2929
%30 : int = aten::dim(%29)
3030
%data.2 : Dynamic = aten::unsqueeze(%29, %30)
31-
%32 : bool = prim::Constant[value=1]()
32-
-> (%32, %data.2)
31+
-> (%16, %data.2)
3332
}
3433
%cond_data.1 : Dynamic = aten::expand_as(%data.3, %data.1)
3534
%cond_mask.2 : Dynamic = aten::expand_as(%data.3, %mask)

test/expect/TestBatched.test_if_noelse_with_scalar.expect

+18-19
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,32 @@ graph(%a.1_data : Dynamic
44
%b_data : Dynamic
55
%b_mask : Dynamic
66
%b_dims : Dynamic) {
7-
%6 : float = prim::Constant[value=0.1]()
8-
%7 : Float() = prim::NumToTensor(%6)
9-
%other : float = prim::TensorToNum(%7)
10-
%9 : Dynamic = aten::gt(%a.1_data, %other)
11-
%10 : bool = prim::TensorToBool(%9)
12-
%11 : int = prim::Constant[value=1]()
13-
%12 : Long() = prim::NumToTensor(%11)
7+
%6 : int = prim::Constant[value=1]()
8+
%7 : float = prim::Constant[value=0.1]()
9+
%8 : Float() = prim::NumToTensor(%7)
10+
%other : float = prim::TensorToNum(%8)
11+
%10 : Dynamic = aten::gt(%a.1_data, %other)
12+
%11 : bool = prim::TensorToBool(%10)
13+
%12 : Long() = prim::NumToTensor(%6)
1414
%alpha : float = prim::TensorToNum(%12)
1515
%data.1 : Dynamic = aten::add(%a.1_data, %b_data, %alpha)
1616
%mask : Dynamic = aten::mul(%a.1_mask, %b_mask)
1717
%dims : Dynamic = aten::__or__(%a.1_dims, %b_dims)
18-
%17 : int = prim::Constant[value=1]()
19-
%18 : Dynamic = aten::type_as(%a.1_mask, %9)
20-
%cond_mask.1 : Dynamic = aten::mul(%9, %18)
21-
%20 : int = aten::dim(%cond_mask.1)
22-
%21 : bool = aten::eq(%20, %17)
23-
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%21)
18+
%17 : bool = prim::Constant[value=1]()
19+
%18 : int = prim::Constant[value=1]()
20+
%19 : Dynamic = aten::type_as(%a.1_mask, %10)
21+
%cond_mask.1 : Dynamic = aten::mul(%10, %19)
22+
%21 : int = aten::dim(%cond_mask.1)
23+
%22 : bool = aten::eq(%21, %18)
24+
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%22)
2425
block0() {
25-
%25 : int = aten::dim(%data.1)
26-
%26 : int = aten::sub(%25, %17)
27-
%27 : bool = prim::Constant[value=1]()
28-
%data.3 : Dynamic = prim::Loop(%26, %27, %cond_mask.1)
26+
%26 : int = aten::dim(%data.1)
27+
%27 : int = aten::sub(%26, %18)
28+
%data.3 : Dynamic = prim::Loop(%27, %17, %cond_mask.1)
2929
block0(%_ : int, %30 : Dynamic) {
3030
%31 : int = aten::dim(%30)
3131
%data.2 : Dynamic = aten::unsqueeze(%30, %31)
32-
%33 : bool = prim::Constant[value=1]()
33-
-> (%33, %data.2)
32+
-> (%17, %data.2)
3433
}
3534
%cond_data.1 : Dynamic = aten::expand_as(%data.3, %data.1)
3635
%cond_mask.2 : Dynamic = aten::expand_as(%data.3, %mask)

test/expect/TestBatched.test_while.expect

+31-32
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ graph(%a.1_data : Dynamic
44
%b_data : Dynamic
55
%b_mask : Dynamic
66
%b_dims : Dynamic) {
7-
%6 : int = prim::Constant[value=2147483647]()
8-
%7 : Dynamic = aten::gt(%a.1_data, %b_data)
9-
%8 : Dynamic = aten::mul(%a.1_mask, %b_mask)
10-
%9 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
11-
%10 : bool = prim::TensorToBool(%7)
12-
%11 : int = prim::Constant[value=0]()
13-
%12 : Dynamic = aten::mul(%7, %8)
14-
%13 : Dynamic = aten::sum(%12)
15-
%14 : Dynamic = aten::gt(%13, %11)
16-
%15 : bool = prim::TensorToBool(%14)
17-
%16 : Dynamic, %17 : Dynamic, %18 : Dynamic, %a : Dynamic, %20 : Dynamic, %21 : Dynamic = prim::Loop(%6, %15, %7, %8, %9, %a.1_data, %a.1_mask, %a.1_dims)
7+
%6 : int = prim::Constant[value=1]()
8+
%7 : int = prim::Constant[value=2147483647]()
9+
%8 : Dynamic = aten::gt(%a.1_data, %b_data)
10+
%9 : Dynamic = aten::mul(%a.1_mask, %b_mask)
11+
%10 : Dynamic = aten::__or__(%a.1_dims, %b_dims)
12+
%11 : bool = prim::TensorToBool(%8)
13+
%12 : int = prim::Constant[value=0]()
14+
%13 : Dynamic = aten::mul(%8, %9)
15+
%14 : Dynamic = aten::sum(%13)
16+
%15 : Dynamic = aten::gt(%14, %12)
17+
%16 : bool = prim::TensorToBool(%15)
18+
%17 : Dynamic, %18 : Dynamic, %19 : Dynamic, %a : Dynamic, %21 : Dynamic, %22 : Dynamic = prim::Loop(%7, %16, %8, %9, %10, %a.1_data, %a.1_mask, %a.1_dims)
1819
block0(%loop_num : int, %cond_data.2 : Dynamic, %cond_mask.3 : Dynamic, %cond_dims : Dynamic, %6_data : Dynamic, %6_mask : Dynamic, %6_dims : Dynamic) {
19-
%29 : int = prim::Constant[value=1]()
20-
%30 : Long() = prim::NumToTensor(%29)
20+
%30 : Long() = prim::NumToTensor(%6)
2121
%alpha : float = prim::TensorToNum(%30)
2222
%data.1 : Dynamic = aten::sub(%6_data, %b_data, %alpha)
2323
%mask : Dynamic = aten::mul(%6_mask, %b_mask)
@@ -26,22 +26,21 @@ graph(%a.1_data : Dynamic
2626
%36 : Dynamic = aten::mul(%mask, %b_mask)
2727
%37 : Dynamic = aten::__or__(%dims, %b_dims)
2828
%38 : bool = prim::TensorToBool(%35)
29-
%39 : int = prim::Constant[value=1]()
30-
%40 : Dynamic = aten::type_as(%cond_mask.3, %cond_data.2)
31-
%cond_mask.1 : Dynamic = aten::mul(%cond_data.2, %40)
32-
%42 : int = aten::dim(%cond_mask.1)
33-
%43 : bool = aten::eq(%42, %39)
34-
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%43)
29+
%39 : bool = prim::Constant[value=1]()
30+
%40 : int = prim::Constant[value=1]()
31+
%41 : Dynamic = aten::type_as(%cond_mask.3, %cond_data.2)
32+
%cond_mask.1 : Dynamic = aten::mul(%cond_data.2, %41)
33+
%43 : int = aten::dim(%cond_mask.1)
34+
%44 : bool = aten::eq(%43, %40)
35+
%cond_data : Dynamic, %cond_mask : Dynamic, %data : Dynamic = prim::If(%44)
3536
block0() {
36-
%47 : int = aten::dim(%data.1)
37-
%48 : int = aten::sub(%47, %39)
38-
%49 : bool = prim::Constant[value=1]()
39-
%data.3 : Dynamic = prim::Loop(%48, %49, %cond_mask.1)
37+
%48 : int = aten::dim(%data.1)
38+
%49 : int = aten::sub(%48, %40)
39+
%data.3 : Dynamic = prim::Loop(%49, %39, %cond_mask.1)
4040
block0(%_ : int, %52 : Dynamic) {
4141
%53 : int = aten::dim(%52)
4242
%data.2 : Dynamic = aten::unsqueeze(%52, %53)
43-
%55 : bool = prim::Constant[value=1]()
44-
-> (%55, %data.2)
43+
-> (%39, %data.2)
4544
}
4645
%cond_data.1 : Dynamic = aten::expand_as(%data.3, %data.1)
4746
%cond_mask.2 : Dynamic = aten::expand_as(%data.3, %mask)
@@ -53,12 +52,12 @@ graph(%a.1_data : Dynamic
5352
%res_data : Dynamic = aten::where(%cond_data, %data.1, %6_data)
5453
%res_mask : Dynamic = aten::where(%cond_mask, %mask, %6_mask)
5554
%res_dims : Dynamic = aten::__or__(%dims, %6_dims)
56-
%61 : int = prim::Constant[value=0]()
57-
%62 : Dynamic = aten::mul(%35, %36)
58-
%63 : Dynamic = aten::sum(%62)
59-
%64 : Dynamic = aten::gt(%63, %61)
60-
%65 : bool = prim::TensorToBool(%64)
61-
-> (%65, %35, %36, %37, %res_data, %res_mask, %res_dims)
55+
%60 : int = prim::Constant[value=0]()
56+
%61 : Dynamic = aten::mul(%35, %36)
57+
%62 : Dynamic = aten::sum(%61)
58+
%63 : Dynamic = aten::gt(%62, %60)
59+
%64 : bool = prim::TensorToBool(%63)
60+
-> (%64, %35, %36, %37, %res_data, %res_mask, %res_dims)
6261
}
63-
return (%a, %20, %21);
62+
return (%a, %21, %22);
6463
}

test/expect/TestJit.test_constant_prop_if_constant.expect

+4-7
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@ graph(%a : Dynamic
2121
}
2222
%c0.5 : int = aten::add(%c0.4, %c2.1)
2323
%11 : int = prim::Constant[value=5]()
24-
%12 : int = prim::Constant[value=1]()
25-
%13 : Dynamic = aten::add(%a, %c0.5, %12)
26-
%14 : int = prim::Constant[value=1]()
27-
%15 : Dynamic = aten::add(%13, %c1, %14)
28-
%16 : int = prim::Constant[value=1]()
29-
%17 : Dynamic = aten::add(%15, %11, %16)
30-
return (%17);
24+
%12 : Dynamic = aten::add(%a, %c0.5, %c2.1)
25+
%13 : Dynamic = aten::add(%12, %c1, %c2.1)
26+
%14 : Dynamic = aten::add(%13, %11, %c2.1)
27+
return (%14);
3128
}
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
graph() {
2-
%b.4 : int = prim::Constant[value=2]()
3-
%b.2 : int = prim::Constant[value=1]()
4-
%2 : int = prim::Constant[value=2147483647]()
2+
%0 : bool = prim::Constant[value=0]()
3+
%1 : bool = prim::Constant[value=1]()
54
%b.1 : int = prim::Constant[value=0]()
6-
%4 : bool = prim::Constant[value=1]()
7-
%b.3 : int = prim::Loop(%2, %4, %b.1)
8-
block0(%6 : int, %7 : int) {
9-
%8 : bool = prim::Constant[value=1]()
10-
-> (%8, %b.2)
5+
%3 : int = prim::Constant[value=2147483647]()
6+
%b.2 : int = prim::Constant[value=1]()
7+
%b.4 : int = prim::Constant[value=2]()
8+
%b.3 : int = prim::Loop(%3, %1, %b.1)
9+
block0(%7 : int, %8 : int) {
10+
-> (%1, %b.2)
1111
}
12-
%9 : bool = prim::Constant[value=0]()
13-
%b : int = prim::Loop(%2, %9, %b.3)
14-
block0(%11 : int, %12 : int) {
15-
%13 : bool = prim::Constant[value=0]()
16-
-> (%13, %b.4)
12+
%b : int = prim::Loop(%3, %0, %b.3)
13+
block0(%10 : int, %11 : int) {
14+
-> (%0, %b.4)
1715
}
1816
return (%b);
1917
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
graph(%input_tensor : Dynamic) {
2-
%1 : int = prim::Constant[value=6]()
3-
= prim::Print(%1)
4-
%2 : int = prim::Constant[value=8]()
5-
%3 : int = prim::Constant[value=1]()
6-
%4 : Dynamic = aten::add(%input_tensor, %2, %3)
2+
%1 : int = prim::Constant[value=1]()
3+
%2 : int = prim::Constant[value=6]()
4+
= prim::Print(%2)
5+
%3 : int = prim::Constant[value=8]()
6+
%4 : Dynamic = aten::add(%input_tensor, %3, %1)
77
return (%4);
88
}

0 commit comments

Comments
 (0)