Commit 6810a46
committed
LargeTypesReg2Mem: Avoid building an explosion schema just to count the number of registers for very large types
Computing the explosion schema for large types can be expensive.
E.g the following example would spend multiple seconds to compute the
explosion scheme for the array type. It is not worth adding the
complexity to have a special case explosion schema that handles types
like that since exploding a value like that is going to be detrimental.
```
struct Test {
private var values: [0xfffffff of [UInt32]] =
InlineArray(repeating: [])
}
```
rdar://1652024951 parent d019f37 commit 6810a46
File tree
4 files changed
+42
-7
lines changed- include/swift/SIL
- lib
- IRGen
- SIL/IR
4 files changed
+42
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
131 | 138 | | |
132 | 139 | | |
133 | 140 | | |
| |||
145 | 152 | | |
146 | 153 | | |
147 | 154 | | |
| 155 | + | |
148 | 156 | | |
149 | 157 | | |
150 | 158 | | |
| |||
164 | 172 | | |
165 | 173 | | |
166 | 174 | | |
167 | | - | |
| 175 | + | |
| 176 | + | |
168 | 177 | | |
169 | 178 | | |
170 | 179 | | |
| |||
175 | 184 | | |
176 | 185 | | |
177 | 186 | | |
178 | | - | |
| 187 | + | |
| 188 | + | |
179 | 189 | | |
180 | 190 | | |
181 | 191 | | |
| |||
261 | 271 | | |
262 | 272 | | |
263 | 273 | | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
264 | 277 | | |
265 | 278 | | |
266 | 279 | | |
| |||
287 | 300 | | |
288 | 301 | | |
289 | 302 | | |
| 303 | + | |
290 | 304 | | |
291 | 305 | | |
292 | 306 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
| 70 | + | |
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3511 | 3511 | | |
3512 | 3512 | | |
3513 | 3513 | | |
| 3514 | + | |
3514 | 3515 | | |
3515 | 3516 | | |
3516 | 3517 | | |
| |||
3522 | 3523 | | |
3523 | 3524 | | |
3524 | 3525 | | |
| 3526 | + | |
3525 | 3527 | | |
3526 | | - | |
| 3528 | + | |
3527 | 3529 | | |
3528 | 3530 | | |
3529 | 3531 | | |
| |||
3558 | 3560 | | |
3559 | 3561 | | |
3560 | 3562 | | |
| 3563 | + | |
| 3564 | + | |
| 3565 | + | |
| 3566 | + | |
| 3567 | + | |
| 3568 | + | |
| 3569 | + | |
| 3570 | + | |
| 3571 | + | |
| 3572 | + | |
3561 | 3573 | | |
3562 | 3574 | | |
3563 | 3575 | | |
| |||
3603 | 3615 | | |
3604 | 3616 | | |
3605 | 3617 | | |
| 3618 | + | |
| 3619 | + | |
| 3620 | + | |
3606 | 3621 | | |
3607 | 3622 | | |
3608 | 3623 | | |
| |||
3651 | 3666 | | |
3652 | 3667 | | |
3653 | 3668 | | |
| 3669 | + | |
| 3670 | + | |
3654 | 3671 | | |
3655 | 3672 | | |
3656 | 3673 | | |
| |||
3699 | 3716 | | |
3700 | 3717 | | |
3701 | 3718 | | |
3702 | | - | |
| 3719 | + | |
| 3720 | + | |
3703 | 3721 | | |
3704 | 3722 | | |
3705 | | - | |
| 3723 | + | |
| 3724 | + | |
3706 | 3725 | | |
3707 | 3726 | | |
3708 | 3727 | | |
| |||
4735 | 4754 | | |
4736 | 4755 | | |
4737 | 4756 | | |
4738 | | - | |
| 4757 | + | |
4739 | 4758 | | |
4740 | 4759 | | |
4741 | 4760 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
| 407 | + | |
407 | 408 | | |
408 | 409 | | |
409 | 410 | | |
| |||
0 commit comments