Commit 713c8dd
authored
Take into account zero-offset field sequences when propagating locals (#64701)
* Add a test
* Fix the problem
LCL_VAR use VN != VN of its SSA def.
Using one for replacement can run afoul of substituting
into a LCL_VAR that has a zero-offset field sequence on
top and thus duplicate the sequence (as the replacement
def will already have this sequence incorporated into its
VN).
* Fix the same problem in local propagation
Just one diff, missing null check elimination: we propagated a field
sequence for an array address (PtrToArrElem) that later wasn't recognized
as implying non-nullness of another PtrToArrElem to the same array.1 parent 75589ae commit 713c8dd
File tree
5 files changed
+164
-22
lines changed- src
- coreclr/jit
- tests/JIT/Regression/JitBlue/Runtime_64700
5 files changed
+164
-22
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1062 | 1062 | | |
1063 | 1063 | | |
1064 | 1064 | | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
1065 | 1070 | | |
1066 | 1071 | | |
1067 | 1072 | | |
| |||
1582 | 1587 | | |
1583 | 1588 | | |
1584 | 1589 | | |
1585 | | - | |
1586 | | - | |
1587 | | - | |
1588 | | - | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
1589 | 1598 | | |
1590 | 1599 | | |
1591 | 1600 | | |
| |||
3316 | 3325 | | |
3317 | 3326 | | |
3318 | 3327 | | |
3319 | | - | |
3320 | | - | |
3321 | | - | |
| 3328 | + | |
| 3329 | + | |
| 3330 | + | |
| 3331 | + | |
| 3332 | + | |
| 3333 | + | |
| 3334 | + | |
| 3335 | + | |
| 3336 | + | |
| 3337 | + | |
| 3338 | + | |
| 3339 | + | |
| 3340 | + | |
| 3341 | + | |
| 3342 | + | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
| 3346 | + | |
| 3347 | + | |
3322 | 3348 | | |
3323 | 3349 | | |
3324 | 3350 | | |
3325 | 3351 | | |
3326 | | - | |
3327 | 3352 | | |
3328 | 3353 | | |
3329 | 3354 | | |
| |||
3349 | 3374 | | |
3350 | 3375 | | |
3351 | 3376 | | |
| 3377 | + | |
| 3378 | + | |
| 3379 | + | |
| 3380 | + | |
| 3381 | + | |
| 3382 | + | |
| 3383 | + | |
| 3384 | + | |
| 3385 | + | |
| 3386 | + | |
| 3387 | + | |
| 3388 | + | |
| 3389 | + | |
3352 | 3390 | | |
3353 | 3391 | | |
3354 | 3392 | | |
3355 | 3393 | | |
3356 | 3394 | | |
3357 | | - | |
| 3395 | + | |
3358 | 3396 | | |
3359 | 3397 | | |
3360 | 3398 | | |
| |||
4665 | 4703 | | |
4666 | 4704 | | |
4667 | 4705 | | |
4668 | | - | |
4669 | | - | |
4670 | | - | |
4671 | | - | |
| 4706 | + | |
| 4707 | + | |
4672 | 4708 | | |
4673 | 4709 | | |
4674 | 4710 | | |
4675 | 4711 | | |
4676 | | - | |
| 4712 | + | |
| 4713 | + | |
| 4714 | + | |
4677 | 4715 | | |
4678 | 4716 | | |
4679 | 4717 | | |
| |||
4822 | 4860 | | |
4823 | 4861 | | |
4824 | 4862 | | |
4825 | | - | |
4826 | 4863 | | |
4827 | 4864 | | |
4828 | 4865 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7627 | 7627 | | |
7628 | 7628 | | |
7629 | 7629 | | |
7630 | | - | |
7631 | 7630 | | |
7632 | 7631 | | |
7633 | 7632 | | |
| |||
7667 | 7666 | | |
7668 | 7667 | | |
7669 | 7668 | | |
7670 | | - | |
| 7669 | + | |
| 7670 | + | |
| 7671 | + | |
| 7672 | + | |
| 7673 | + | |
7671 | 7674 | | |
7672 | 7675 | | |
7673 | 7676 | | |
| |||
7746 | 7749 | | |
7747 | 7750 | | |
7748 | 7751 | | |
| 7752 | + | |
7749 | 7753 | | |
7750 | 7754 | | |
7751 | 7755 | | |
| |||
7760 | 7764 | | |
7761 | 7765 | | |
7762 | 7766 | | |
7763 | | - | |
7764 | 7767 | | |
7765 | | - | |
| 7768 | + | |
| 7769 | + | |
7766 | 7770 | | |
7767 | 7771 | | |
7768 | 7772 | | |
| |||
7775 | 7779 | | |
7776 | 7780 | | |
7777 | 7781 | | |
| 7782 | + | |
7778 | 7783 | | |
7779 | 7784 | | |
7780 | 7785 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
180 | | - | |
| 180 | + | |
| 181 | + | |
181 | 182 | | |
182 | 183 | | |
183 | 184 | | |
| |||
230 | 231 | | |
231 | 232 | | |
232 | 233 | | |
233 | | - | |
| 234 | + | |
234 | 235 | | |
235 | | - | |
| 236 | + | |
236 | 237 | | |
237 | 238 | | |
238 | 239 | | |
| |||
Lines changed: 82 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
Lines changed: 17 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
0 commit comments