Commit 9f0375e
committed
[silgenpattern] Only emit a shared case if we have a fallthrough/multiple cast items.
There was a bug here where we were emitting a shared case if we had arguments.
That is why we needed the hacked in deletion of that block when we emitted
shared blocks. I was able to replace that with an assert to make sure that we do
not regress.
This additionally improved our code generation by eliminating a potential extra
copy when we had such a case. That is where the test updates come from.1 parent 8c95abb commit 9f0375e
File tree
4 files changed
+57
-46
lines changed- lib/SILGen
- test/SILGen
4 files changed
+57
-46
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2318 | 2318 | | |
2319 | 2319 | | |
2320 | 2320 | | |
2321 | | - | |
2322 | | - | |
| 2321 | + | |
| 2322 | + | |
| 2323 | + | |
2323 | 2324 | | |
2324 | 2325 | | |
2325 | 2326 | | |
| |||
2353 | 2354 | | |
2354 | 2355 | | |
2355 | 2356 | | |
| 2357 | + | |
2356 | 2358 | | |
2357 | 2359 | | |
2358 | 2360 | | |
| |||
2426 | 2428 | | |
2427 | 2429 | | |
2428 | 2430 | | |
2429 | | - | |
2430 | | - | |
2431 | | - | |
2432 | | - | |
2433 | | - | |
| 2431 | + | |
| 2432 | + | |
| 2433 | + | |
2434 | 2434 | | |
2435 | 2435 | | |
2436 | 2436 | | |
| |||
2646 | 2646 | | |
2647 | 2647 | | |
2648 | 2648 | | |
2649 | | - | |
2650 | | - | |
2651 | | - | |
2652 | | - | |
2653 | | - | |
2654 | | - | |
2655 | | - | |
2656 | | - | |
2657 | | - | |
2658 | | - | |
2659 | | - | |
2660 | | - | |
2661 | | - | |
| 2649 | + | |
| 2650 | + | |
| 2651 | + | |
| 2652 | + | |
| 2653 | + | |
2662 | 2654 | | |
2663 | 2655 | | |
2664 | 2656 | | |
2665 | 2657 | | |
2666 | 2658 | | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
| 2662 | + | |
| 2663 | + | |
2667 | 2664 | | |
2668 | 2665 | | |
2669 | | - | |
2670 | | - | |
2671 | | - | |
2672 | | - | |
2673 | | - | |
2674 | | - | |
| 2666 | + | |
| 2667 | + | |
| 2668 | + | |
| 2669 | + | |
| 2670 | + | |
| 2671 | + | |
| 2672 | + | |
| 2673 | + | |
| 2674 | + | |
| 2675 | + | |
| 2676 | + | |
| 2677 | + | |
| 2678 | + | |
2675 | 2679 | | |
2676 | 2680 | | |
2677 | 2681 | | |
| |||
2741 | 2745 | | |
2742 | 2746 | | |
2743 | 2747 | | |
2744 | | - | |
2745 | | - | |
2746 | | - | |
| 2748 | + | |
| 2749 | + | |
| 2750 | + | |
| 2751 | + | |
2747 | 2752 | | |
2748 | 2753 | | |
2749 | 2754 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
| 232 | + | |
232 | 233 | | |
233 | 234 | | |
234 | | - | |
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
| |||
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
| 308 | + | |
308 | 309 | | |
309 | 310 | | |
310 | | - | |
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
307 | 310 | | |
308 | 311 | | |
309 | 312 | | |
310 | 313 | | |
311 | | - | |
312 | 314 | | |
313 | 315 | | |
314 | 316 | | |
| |||
423 | 425 | | |
424 | 426 | | |
425 | 427 | | |
| 428 | + | |
426 | 429 | | |
427 | 430 | | |
428 | | - | |
429 | 431 | | |
430 | 432 | | |
431 | 433 | | |
| |||
443 | 445 | | |
444 | 446 | | |
445 | 447 | | |
446 | | - | |
447 | 448 | | |
| 449 | + | |
448 | 450 | | |
449 | 451 | | |
450 | 452 | | |
| |||
458 | 460 | | |
459 | 461 | | |
460 | 462 | | |
461 | | - | |
462 | 463 | | |
| 464 | + | |
463 | 465 | | |
464 | 466 | | |
465 | 467 | | |
| |||
478 | 480 | | |
479 | 481 | | |
480 | 482 | | |
| 483 | + | |
| 484 | + | |
481 | 485 | | |
482 | 486 | | |
483 | | - | |
484 | 487 | | |
485 | 488 | | |
486 | 489 | | |
| |||
799 | 802 | | |
800 | 803 | | |
801 | 804 | | |
| 805 | + | |
| 806 | + | |
802 | 807 | | |
803 | | - | |
804 | 808 | | |
805 | 809 | | |
806 | 810 | | |
807 | 811 | | |
808 | 812 | | |
809 | 813 | | |
810 | 814 | | |
| 815 | + | |
| 816 | + | |
811 | 817 | | |
812 | | - | |
813 | 818 | | |
814 | 819 | | |
815 | 820 | | |
816 | 821 | | |
817 | 822 | | |
818 | 823 | | |
| 824 | + | |
| 825 | + | |
819 | 826 | | |
820 | | - | |
821 | 827 | | |
822 | 828 | | |
823 | 829 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
431 | 431 | | |
432 | 432 | | |
433 | 433 | | |
| 434 | + | |
| 435 | + | |
434 | 436 | | |
435 | | - | |
436 | 437 | | |
437 | 438 | | |
438 | | - | |
439 | | - | |
440 | 439 | | |
441 | 440 | | |
442 | | - | |
| 441 | + | |
| 442 | + | |
443 | 443 | | |
| 444 | + | |
444 | 445 | | |
445 | 446 | | |
446 | 447 | | |
| |||
504 | 505 | | |
505 | 506 | | |
506 | 507 | | |
507 | | - | |
508 | 508 | | |
509 | 509 | | |
| 510 | + | |
510 | 511 | | |
511 | 512 | | |
512 | 513 | | |
513 | 514 | | |
514 | 515 | | |
515 | | - | |
516 | | - | |
517 | 516 | | |
518 | 517 | | |
| 518 | + | |
519 | 519 | | |
520 | 520 | | |
521 | 521 | | |
| |||
0 commit comments