Commit b5ad038
committed
Fix SILCombine infinite iteration optimizing existentials.
Optimizing applies that take existential arguments is a complex
process with multiple transformations. If the apply isn't rewritten,
earlier transformations need to be undone.
SILCombine is obviously the wrong place to implement type propagation,
as I point out every time I need to fix it.
Fixes <rdar://problem/49336444> SILCombine infinite loop.1 parent 28ecdea commit b5ad038
File tree
2 files changed
+58
-2
lines changed- lib/SILOptimizer/SILCombiner
- test/SILOptimizer
2 files changed
+58
-2
lines changedLines changed: 15 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
663 | 663 | | |
664 | 664 | | |
665 | 665 | | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
666 | 670 | | |
667 | 671 | | |
668 | 672 | | |
| |||
998 | 1002 | | |
999 | 1003 | | |
1000 | 1004 | | |
1001 | | - | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
1002 | 1012 | | |
1003 | | - | |
| 1013 | + | |
1004 | 1014 | | |
1005 | 1015 | | |
1006 | 1016 | | |
| |||
1132 | 1142 | | |
1133 | 1143 | | |
1134 | 1144 | | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
1135 | 1148 | | |
1136 | 1149 | | |
1137 | 1150 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
0 commit comments