Commit cdf4307
committed
[MoveOnlyAddressChecker] Fix repr for initInsts.
The address checker records instructions that initialize fields in its
initInsts map. Previously, that map mapped from an instruction to a
range of fields of the type. But an instruction can initialize multiple
discontiguous fields of a single value. (Indeed an attempt to add a
second range that was initialized by an already initializing
instruction--even if it were overlapping or adjacent--would have no
effect and the map wouldn't be updated.) Here, this is fixed by fixing
the representation and updating the storage whenver a new range is seen
to be initialized by the instruction. As in
swiftlang#66728 , a SmallBitVector is the
representation chosen.
rdar://1113918931 parent 496eb0c commit cdf4307
File tree
2 files changed
+47
-9
lines changed- lib/SILOptimizer/Mandatory
- test/SILOptimizer
2 files changed
+47
-9
lines changedLines changed: 12 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
625 | 625 | | |
626 | 626 | | |
627 | 627 | | |
628 | | - | |
| 628 | + | |
629 | 629 | | |
630 | 630 | | |
631 | 631 | | |
| |||
687 | 687 | | |
688 | 688 | | |
689 | 689 | | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
690 | 694 | | |
691 | 695 | | |
692 | 696 | | |
| |||
881 | 885 | | |
882 | 886 | | |
883 | 887 | | |
884 | | - | |
| 888 | + | |
885 | 889 | | |
886 | 890 | | |
887 | 891 | | |
| |||
1026 | 1030 | | |
1027 | 1031 | | |
1028 | 1032 | | |
1029 | | - | |
| 1033 | + | |
1030 | 1034 | | |
1031 | 1035 | | |
1032 | 1036 | | |
| |||
1057 | 1061 | | |
1058 | 1062 | | |
1059 | 1063 | | |
1060 | | - | |
| 1064 | + | |
1061 | 1065 | | |
1062 | 1066 | | |
1063 | 1067 | | |
1064 | 1068 | | |
1065 | 1069 | | |
1066 | 1070 | | |
1067 | | - | |
| 1071 | + | |
1068 | 1072 | | |
1069 | 1073 | | |
1070 | 1074 | | |
| |||
1075 | 1079 | | |
1076 | 1080 | | |
1077 | 1081 | | |
1078 | | - | |
| 1082 | + | |
1079 | 1083 | | |
1080 | 1084 | | |
1081 | 1085 | | |
| |||
1085 | 1089 | | |
1086 | 1090 | | |
1087 | 1091 | | |
1088 | | - | |
| 1092 | + | |
1089 | 1093 | | |
1090 | 1094 | | |
1091 | 1095 | | |
| |||
1758 | 1762 | | |
1759 | 1763 | | |
1760 | 1764 | | |
1761 | | - | |
1762 | | - | |
| 1765 | + | |
1763 | 1766 | | |
1764 | 1767 | | |
1765 | 1768 | | |
| |||
Lines changed: 35 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
107 | 108 | | |
108 | 109 | | |
109 | 110 | | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
0 commit comments