Commit 0b0c338
authored
Fix ConstantFieldPropagation signed packed field handling and improve Heap2Local's (#6493)
CFP already had logic for truncating but not for sign-extending, which this
fixes.
Use the new helper function in Heap2Local as well. This changes the model
there from "truncate on set, sign-extend on get" to "truncate or sign-extend
on get". That is both simpler by reusing the same logic as CFP but also more
optimal: the idea to truncate on sets made sense since sets are rarer, but if
we must then sign-extend on gets then we can end up doing more work
overall (as the truncations on sets are not needed if all gets are signed).
Found by #64861 parent da8b071 commit 0b0c338
File tree
5 files changed
+135
-59
lines changed- src
- ir
- passes
- test/lit/passes
5 files changed
+135
-59
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 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 | + | |
110 | 134 | | |
111 | 135 | | |
112 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
| 128 | + | |
| 129 | + | |
135 | 130 | | |
136 | 131 | | |
137 | 132 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
649 | 649 | | |
650 | 650 | | |
651 | 651 | | |
652 | | - | |
653 | | - | |
654 | | - | |
655 | | - | |
656 | | - | |
657 | | - | |
658 | | - | |
659 | | - | |
660 | | - | |
661 | | - | |
662 | | - | |
663 | | - | |
664 | | - | |
665 | | - | |
666 | | - | |
667 | 652 | | |
668 | 653 | | |
669 | 654 | | |
| |||
710 | 695 | | |
711 | 696 | | |
712 | 697 | | |
713 | | - | |
714 | | - | |
715 | | - | |
| 698 | + | |
716 | 699 | | |
717 | 700 | | |
718 | 701 | | |
| |||
724 | 707 | | |
725 | 708 | | |
726 | 709 | | |
727 | | - | |
728 | | - | |
729 | 710 | | |
730 | 711 | | |
731 | 712 | | |
| |||
786 | 767 | | |
787 | 768 | | |
788 | 769 | | |
789 | | - | |
790 | | - | |
| 770 | + | |
791 | 771 | | |
792 | 772 | | |
793 | 773 | | |
| |||
813 | 793 | | |
814 | 794 | | |
815 | 795 | | |
816 | | - | |
817 | | - | |
818 | | - | |
819 | | - | |
820 | | - | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
821 | 802 | | |
822 | 803 | | |
823 | 804 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2228 | 2228 | | |
2229 | 2229 | | |
2230 | 2230 | | |
| 2231 | + | |
| 2232 | + | |
| 2233 | + | |
| 2234 | + | |
| 2235 | + | |
| 2236 | + | |
| 2237 | + | |
| 2238 | + | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
| 2245 | + | |
| 2246 | + | |
| 2247 | + | |
| 2248 | + | |
| 2249 | + | |
| 2250 | + | |
| 2251 | + | |
| 2252 | + | |
| 2253 | + | |
| 2254 | + | |
| 2255 | + | |
| 2256 | + | |
| 2257 | + | |
| 2258 | + | |
| 2259 | + | |
| 2260 | + | |
| 2261 | + | |
| 2262 | + | |
| 2263 | + | |
| 2264 | + | |
| 2265 | + | |
| 2266 | + | |
| 2267 | + | |
| 2268 | + | |
| 2269 | + | |
| 2270 | + | |
| 2271 | + | |
| 2272 | + | |
| 2273 | + | |
| 2274 | + | |
| 2275 | + | |
| 2276 | + | |
| 2277 | + | |
| 2278 | + | |
| 2279 | + | |
| 2280 | + | |
| 2281 | + | |
| 2282 | + | |
| 2283 | + | |
| 2284 | + | |
| 2285 | + | |
| 2286 | + | |
| 2287 | + | |
| 2288 | + | |
| 2289 | + | |
| 2290 | + | |
| 2291 | + | |
| 2292 | + | |
| 2293 | + | |
| 2294 | + | |
| 2295 | + | |
| 2296 | + | |
| 2297 | + | |
| 2298 | + | |
| 2299 | + | |
| 2300 | + | |
| 2301 | + | |
| 2302 | + | |
| 2303 | + | |
| 2304 | + | |
| 2305 | + | |
| 2306 | + | |
| 2307 | + | |
| 2308 | + | |
| 2309 | + | |
| 2310 | + | |
| 2311 | + | |
2231 | 2312 | | |
2232 | 2313 | | |
2233 | 2314 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
| 194 | + | |
198 | 195 | | |
199 | 196 | | |
200 | 197 | | |
| |||
207 | 204 | | |
208 | 205 | | |
209 | 206 | | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
| 207 | + | |
214 | 208 | | |
215 | 209 | | |
216 | 210 | | |
217 | 211 | | |
218 | 212 | | |
219 | 213 | | |
220 | 214 | | |
221 | | - | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
222 | 219 | | |
223 | 220 | | |
224 | 221 | | |
| |||
265 | 262 | | |
266 | 263 | | |
267 | 264 | | |
268 | | - | |
269 | | - | |
270 | 265 | | |
271 | 266 | | |
272 | 267 | | |
| |||
277 | 272 | | |
278 | 273 | | |
279 | 274 | | |
| 275 | + | |
| 276 | + | |
280 | 277 | | |
281 | 278 | | |
282 | 279 | | |
283 | 280 | | |
284 | 281 | | |
285 | | - | |
286 | 282 | | |
287 | 283 | | |
288 | 284 | | |
| |||
298 | 294 | | |
299 | 295 | | |
300 | 296 | | |
301 | | - | |
302 | | - | |
| 297 | + | |
303 | 298 | | |
304 | 299 | | |
305 | 300 | | |
| |||
3463 | 3458 | | |
3464 | 3459 | | |
3465 | 3460 | | |
3466 | | - | |
3467 | | - | |
3468 | | - | |
3469 | | - | |
| 3461 | + | |
3470 | 3462 | | |
3471 | 3463 | | |
3472 | 3464 | | |
3473 | 3465 | | |
3474 | 3466 | | |
3475 | 3467 | | |
3476 | 3468 | | |
3477 | | - | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
3478 | 3473 | | |
3479 | 3474 | | |
3480 | 3475 | | |
| |||
3504 | 3499 | | |
3505 | 3500 | | |
3506 | 3501 | | |
| 3502 | + | |
3507 | 3503 | | |
3508 | 3504 | | |
3509 | 3505 | | |
3510 | 3506 | | |
3511 | 3507 | | |
3512 | 3508 | | |
3513 | | - | |
3514 | 3509 | | |
3515 | 3510 | | |
3516 | 3511 | | |
| |||
3543 | 3538 | | |
3544 | 3539 | | |
3545 | 3540 | | |
3546 | | - | |
3547 | | - | |
3548 | | - | |
3549 | | - | |
| 3541 | + | |
3550 | 3542 | | |
3551 | 3543 | | |
3552 | 3544 | | |
3553 | 3545 | | |
3554 | 3546 | | |
3555 | 3547 | | |
3556 | | - | |
| 3548 | + | |
| 3549 | + | |
| 3550 | + | |
| 3551 | + | |
3557 | 3552 | | |
3558 | 3553 | | |
3559 | 3554 | | |
| |||
0 commit comments