Commit 9a9a4f3
authored
Fix poisoning for very large structs (#61521)
For very large structs poisoning could end up generating instructions
requiring larger local var offsets than we can handle which would hit an
IMPL_LIMIT that throws InvalidProgramException. Switch to using rep
stosd (x86/x64)/memset helper (other platforms) when a local needs more
than a certain number of mov instructions to poison.
Also includes a register allocator change to mark killed registers as
modified in addRefsForPhysRegMask instead of by the (usually) calling
function, since this function is used directly in the change.1 parent bd0c543 commit 9a9a4f3
File tree
3 files changed
+103
-44
lines changed- src
- coreclr/jit
- tests/JIT/Directed/debugging
3 files changed
+103
-44
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12446 | 12446 | | |
12447 | 12447 | | |
12448 | 12448 | | |
12449 | | - | |
| 12449 | + | |
| 12450 | + | |
| 12451 | + | |
| 12452 | + | |
| 12453 | + | |
| 12454 | + | |
| 12455 | + | |
| 12456 | + | |
| 12457 | + | |
| 12458 | + | |
| 12459 | + | |
| 12460 | + | |
| 12461 | + | |
12450 | 12462 | | |
12451 | 12463 | | |
12452 | 12464 | | |
| |||
12461 | 12473 | | |
12462 | 12474 | | |
12463 | 12475 | | |
12464 | | - | |
12465 | | - | |
12466 | | - | |
| 12476 | + | |
| 12477 | + | |
12467 | 12478 | | |
12468 | | - | |
12469 | | - | |
12470 | | - | |
12471 | | - | |
12472 | | - | |
12473 | | - | |
12474 | | - | |
12475 | | - | |
12476 | | - | |
12477 | | - | |
12478 | | - | |
| 12479 | + | |
| 12480 | + | |
| 12481 | + | |
| 12482 | + | |
| 12483 | + | |
| 12484 | + | |
| 12485 | + | |
| 12486 | + | |
| 12487 | + | |
| 12488 | + | |
| 12489 | + | |
| 12490 | + | |
| 12491 | + | |
| 12492 | + | |
12479 | 12493 | | |
12480 | | - | |
| 12494 | + | |
| 12495 | + | |
| 12496 | + | |
| 12497 | + | |
| 12498 | + | |
| 12499 | + | |
12481 | 12500 | | |
12482 | | - | |
12483 | 12501 | | |
| 12502 | + | |
| 12503 | + | |
| 12504 | + | |
| 12505 | + | |
| 12506 | + | |
| 12507 | + | |
| 12508 | + | |
12484 | 12509 | | |
12485 | 12510 | | |
12486 | 12511 | | |
12487 | | - | |
12488 | | - | |
| 12512 | + | |
| 12513 | + | |
12489 | 12514 | | |
12490 | | - | |
| 12515 | + | |
12491 | 12516 | | |
12492 | | - | |
12493 | | - | |
12494 | | - | |
12495 | | - | |
12496 | | - | |
| 12517 | + | |
| 12518 | + | |
12497 | 12519 | | |
12498 | | - | |
12499 | | - | |
12500 | | - | |
12501 | | - | |
| 12520 | + | |
| 12521 | + | |
| 12522 | + | |
| 12523 | + | |
| 12524 | + | |
| 12525 | + | |
| 12526 | + | |
12502 | 12527 | | |
12503 | 12528 | | |
12504 | | - | |
12505 | | - | |
12506 | | - | |
| 12529 | + | |
| 12530 | + | |
| 12531 | + | |
| 12532 | + | |
12507 | 12533 | | |
12508 | 12534 | | |
12509 | 12535 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
712 | 712 | | |
713 | 713 | | |
714 | 714 | | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
715 | 729 | | |
716 | 730 | | |
717 | 731 | | |
| |||
1137 | 1151 | | |
1138 | 1152 | | |
1139 | 1153 | | |
1140 | | - | |
1141 | | - | |
1142 | | - | |
1143 | | - | |
1144 | | - | |
1145 | | - | |
1146 | | - | |
1147 | | - | |
1148 | | - | |
1149 | | - | |
1150 | 1154 | | |
1151 | 1155 | | |
1152 | 1156 | | |
| |||
2356 | 2360 | | |
2357 | 2361 | | |
2358 | 2362 | | |
2359 | | - | |
| 2363 | + | |
| 2364 | + | |
| 2365 | + | |
| 2366 | + | |
| 2367 | + | |
| 2368 | + | |
| 2369 | + | |
| 2370 | + | |
| 2371 | + | |
2360 | 2372 | | |
2361 | 2373 | | |
2362 | 2374 | | |
| |||
3291 | 3303 | | |
3292 | 3304 | | |
3293 | 3305 | | |
3294 | | - | |
| 3306 | + | |
3295 | 3307 | | |
3296 | 3308 | | |
3297 | 3309 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
22 | 38 | | |
23 | 39 | | |
24 | 40 | | |
| |||
53 | 69 | | |
54 | 70 | | |
55 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
56 | 77 | | |
0 commit comments