Commit 83b2ebe
authored
[AutoDiff] Support forward mode differentiation of functions with
Adds forward mode support for `apply` instruction with `inout` arguments.
Example of supported code:
```
func add(_ x: inout Float, _ y: inout Float) -> Float {
var result = x
result += y
return result
}
print(differential(at: 1, 1, in: add)(1, 1)) // prints "2"
```inout parameters (#33584)1 parent 7c508a0 commit 83b2ebe
File tree
4 files changed
+220
-77
lines changed- lib/SILOptimizer/Differentiation
- stdlib/public/Differentiation
- test/AutoDiff
- SILOptimizer
- validation-test
4 files changed
+220
-77
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
463 | | - | |
464 | | - | |
465 | | - | |
466 | | - | |
467 | | - | |
468 | | - | |
469 | | - | |
470 | 458 | | |
471 | 459 | | |
472 | 460 | | |
| |||
1241 | 1229 | | |
1242 | 1230 | | |
1243 | 1231 | | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
1244 | 1236 | | |
1245 | 1237 | | |
1246 | 1238 | | |
| |||
1484 | 1476 | | |
1485 | 1477 | | |
1486 | 1478 | | |
1487 | | - | |
1488 | | - | |
1489 | | - | |
1490 | | - | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
1491 | 1485 | | |
| 1486 | + | |
1492 | 1487 | | |
1493 | 1488 | | |
1494 | 1489 | | |
| |||
1521 | 1516 | | |
1522 | 1517 | | |
1523 | 1518 | | |
1524 | | - | |
1525 | | - | |
1526 | | - | |
1527 | | - | |
1528 | | - | |
1529 | | - | |
1530 | | - | |
1531 | | - | |
1532 | | - | |
1533 | | - | |
1534 | | - | |
1535 | | - | |
1536 | | - | |
1537 | | - | |
1538 | | - | |
1539 | | - | |
1540 | | - | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
1541 | 1523 | | |
1542 | 1524 | | |
1543 | 1525 | | |
| |||
1548 | 1530 | | |
1549 | 1531 | | |
1550 | 1532 | | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
1551 | 1552 | | |
1552 | 1553 | | |
1553 | 1554 | | |
| |||
Lines changed: 4 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
205 | 205 | | |
206 | 206 | | |
207 | 207 | | |
| 208 | + | |
208 | 209 | | |
209 | | - | |
| 210 | + | |
210 | 211 | | |
211 | 212 | | |
212 | 213 | | |
| |||
251 | 252 | | |
252 | 253 | | |
253 | 254 | | |
| 255 | + | |
254 | 256 | | |
255 | | - | |
| 257 | + | |
256 | 258 | | |
257 | 259 | | |
258 | 260 | | |
| |||
Lines changed: 21 additions & 42 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
51 | 49 | | |
52 | 50 | | |
53 | 51 | | |
| |||
56 | 54 | | |
57 | 55 | | |
58 | 56 | | |
59 | | - | |
60 | 57 | | |
61 | 58 | | |
62 | 59 | | |
63 | 60 | | |
64 | 61 | | |
65 | | - | |
66 | 62 | | |
67 | | - | |
68 | 63 | | |
69 | 64 | | |
70 | | - | |
71 | 65 | | |
72 | 66 | | |
73 | 67 | | |
74 | 68 | | |
75 | | - | |
76 | 69 | | |
77 | | - | |
78 | 70 | | |
79 | 71 | | |
80 | | - | |
81 | 72 | | |
82 | 73 | | |
83 | 74 | | |
| |||
94 | 85 | | |
95 | 86 | | |
96 | 87 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | 88 | | |
104 | 89 | | |
105 | | - | |
106 | | - | |
107 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
108 | 95 | | |
109 | | - | |
110 | 96 | | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
118 | 103 | | |
119 | 104 | | |
120 | 105 | | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
128 | 111 | | |
129 | | - | |
130 | 112 | | |
131 | | - | |
132 | | - | |
133 | 113 | | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
138 | 118 | | |
139 | | - | |
140 | 119 | | |
141 | 120 | | |
142 | 121 | | |
| |||
0 commit comments