This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Commit c60e68e
committed
Inliner: support inlining of methods with pinned locals
The inliner now can inline a subset of methods with pinned locals --
namely those where the language compiler (eg CSC) can determine that a
try/finally is not necessary to ensure unpinning, and where the jit
likewise an determines that a try/finally is likewise not needed in
the root method.
Generally speaking this allows inlining in cases where the inline method
is fairly simple and does not any contain exception handling, and the
call site is not within a try region.
When inlining methods that have pinned locals and also return a value,
the jit ensures that the return value is spilled to a temp so that the
unpins can be placed just after the inlined method body and won't alter
the return value.
Mark FixedAddressValueType as GCStressIncompatible since the "unfixed"
class static may get re-allocated at the same address. This seems to
happen even without these changes but happens much more frequently with
them.
Closes #7774.1 parent e76da56 commit c60e68e
File tree
8 files changed
+170
-18
lines changed- src/jit
- tests/src/baseservices/compilerservices/FixedAddressValueType
8 files changed
+170
-18
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4664 | 4664 | | |
4665 | 4665 | | |
4666 | 4666 | | |
| 4667 | + | |
4667 | 4668 | | |
4668 | 4669 | | |
4669 | 4670 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4777 | 4777 | | |
4778 | 4778 | | |
4779 | 4779 | | |
| 4780 | + | |
| 4781 | + | |
| 4782 | + | |
| 4783 | + | |
| 4784 | + | |
| 4785 | + | |
4780 | 4786 | | |
4781 | 4787 | | |
4782 | 4788 | | |
| |||
5774 | 5780 | | |
5775 | 5781 | | |
5776 | 5782 | | |
5777 | | - | |
| 5783 | + | |
| 5784 | + | |
5778 | 5785 | | |
5779 | 5786 | | |
5780 | 5787 | | |
5781 | 5788 | | |
5782 | 5789 | | |
| 5790 | + | |
5783 | 5791 | | |
5784 | 5792 | | |
5785 | 5793 | | |
| |||
21696 | 21704 | | |
21697 | 21705 | | |
21698 | 21706 | | |
21699 | | - | |
21700 | 21707 | | |
21701 | | - | |
21702 | | - | |
21703 | | - | |
| 21708 | + | |
21704 | 21709 | | |
21705 | 21710 | | |
21706 | 21711 | | |
| |||
21710 | 21715 | | |
21711 | 21716 | | |
21712 | 21717 | | |
| 21718 | + | |
| 21719 | + | |
| 21720 | + | |
21713 | 21721 | | |
21714 | 21722 | | |
21715 | 21723 | | |
| |||
21734 | 21742 | | |
21735 | 21743 | | |
21736 | 21744 | | |
| 21745 | + | |
21737 | 21746 | | |
21738 | 21747 | | |
21739 | 21748 | | |
| |||
21756 | 21765 | | |
21757 | 21766 | | |
21758 | 21767 | | |
| 21768 | + | |
| 21769 | + | |
| 21770 | + | |
| 21771 | + | |
21759 | 21772 | | |
21760 | 21773 | | |
21761 | 21774 | | |
| |||
21764 | 21777 | | |
21765 | 21778 | | |
21766 | 21779 | | |
21767 | | - | |
21768 | | - | |
21769 | | - | |
21770 | | - | |
21771 | | - | |
21772 | 21780 | | |
21773 | 21781 | | |
21774 | 21782 | | |
| |||
21929 | 21937 | | |
21930 | 21938 | | |
21931 | 21939 | | |
| 21940 | + | |
| 21941 | + | |
| 21942 | + | |
21932 | 21943 | | |
21933 | 21944 | | |
21934 | 21945 | | |
| |||
21994 | 22005 | | |
21995 | 22006 | | |
21996 | 22007 | | |
21997 | | - | |
21998 | | - | |
| 22008 | + | |
| 22009 | + | |
| 22010 | + | |
| 22011 | + | |
| 22012 | + | |
| 22013 | + | |
| 22014 | + | |
| 22015 | + | |
| 22016 | + | |
21999 | 22017 | | |
22000 | 22018 | | |
22001 | 22019 | | |
| |||
22276 | 22294 | | |
22277 | 22295 | | |
22278 | 22296 | | |
| 22297 | + | |
| 22298 | + | |
| 22299 | + | |
| 22300 | + | |
| 22301 | + | |
| 22302 | + | |
| 22303 | + | |
| 22304 | + | |
| 22305 | + | |
| 22306 | + | |
| 22307 | + | |
| 22308 | + | |
| 22309 | + | |
| 22310 | + | |
| 22311 | + | |
| 22312 | + | |
| 22313 | + | |
| 22314 | + | |
| 22315 | + | |
| 22316 | + | |
| 22317 | + | |
| 22318 | + | |
| 22319 | + | |
| 22320 | + | |
| 22321 | + | |
| 22322 | + | |
| 22323 | + | |
| 22324 | + | |
| 22325 | + | |
| 22326 | + | |
| 22327 | + | |
| 22328 | + | |
| 22329 | + | |
| 22330 | + | |
| 22331 | + | |
| 22332 | + | |
| 22333 | + | |
| 22334 | + | |
| 22335 | + | |
| 22336 | + | |
| 22337 | + | |
| 22338 | + | |
| 22339 | + | |
| 22340 | + | |
| 22341 | + | |
| 22342 | + | |
| 22343 | + | |
| 22344 | + | |
| 22345 | + | |
| 22346 | + | |
| 22347 | + | |
| 22348 | + | |
| 22349 | + | |
| 22350 | + | |
| 22351 | + | |
| 22352 | + | |
| 22353 | + | |
| 22354 | + | |
| 22355 | + | |
| 22356 | + | |
| 22357 | + | |
| 22358 | + | |
| 22359 | + | |
| 22360 | + | |
| 22361 | + | |
| 22362 | + | |
| 22363 | + | |
| 22364 | + | |
| 22365 | + | |
| 22366 | + | |
| 22367 | + | |
| 22368 | + | |
| 22369 | + | |
| 22370 | + | |
| 22371 | + | |
| 22372 | + | |
| 22373 | + | |
| 22374 | + | |
| 22375 | + | |
| 22376 | + | |
| 22377 | + | |
22279 | 22378 | | |
22280 | 22379 | | |
22281 | 22380 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14911 | 14911 | | |
14912 | 14912 | | |
14913 | 14913 | | |
14914 | | - | |
| 14914 | + | |
| 14915 | + | |
14915 | 14916 | | |
14916 | 14917 | | |
14917 | 14918 | | |
| |||
15002 | 15003 | | |
15003 | 15004 | | |
15004 | 15005 | | |
15005 | | - | |
| 15006 | + | |
15006 | 15007 | | |
15007 | 15008 | | |
15008 | 15009 | | |
| |||
17429 | 17430 | | |
17430 | 17431 | | |
17431 | 17432 | | |
| 17433 | + | |
17432 | 17434 | | |
17433 | 17435 | | |
17434 | 17436 | | |
17435 | 17437 | | |
17436 | | - | |
17437 | | - | |
| 17438 | + | |
| 17439 | + | |
| 17440 | + | |
| 17441 | + | |
| 17442 | + | |
| 17443 | + | |
17438 | 17444 | | |
17439 | 17445 | | |
17440 | 17446 | | |
| |||
17511 | 17517 | | |
17512 | 17518 | | |
17513 | 17519 | | |
| 17520 | + | |
| 17521 | + | |
| 17522 | + | |
| 17523 | + | |
| 17524 | + | |
| 17525 | + | |
| 17526 | + | |
| 17527 | + | |
| 17528 | + | |
| 17529 | + | |
| 17530 | + | |
| 17531 | + | |
| 17532 | + | |
| 17533 | + | |
| 17534 | + | |
| 17535 | + | |
| 17536 | + | |
| 17537 | + | |
| 17538 | + | |
| 17539 | + | |
| 17540 | + | |
| 17541 | + | |
17514 | 17542 | | |
17515 | 17543 | | |
17516 | 17544 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
| |||
79 | 78 | | |
80 | 79 | | |
81 | 80 | | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
| 151 | + | |
151 | 152 | | |
152 | 153 | | |
153 | 154 | | |
| |||
163 | 164 | | |
164 | 165 | | |
165 | 166 | | |
| 167 | + | |
166 | 168 | | |
167 | 169 | | |
168 | 170 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
537 | 537 | | |
538 | 538 | | |
539 | 539 | | |
| 540 | + | |
540 | 541 | | |
541 | 542 | | |
542 | 543 | | |
| |||
563 | 564 | | |
564 | 565 | | |
565 | 566 | | |
| 567 | + | |
566 | 568 | | |
567 | 569 | | |
568 | 570 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
383 | 383 | | |
384 | 384 | | |
385 | 385 | | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
386 | 392 | | |
387 | 393 | | |
388 | 394 | | |
| |||
883 | 889 | | |
884 | 890 | | |
885 | 891 | | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
886 | 903 | | |
887 | 904 | | |
888 | 905 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
101 | 102 | | |
102 | 103 | | |
103 | 104 | | |
| |||
165 | 166 | | |
166 | 167 | | |
167 | 168 | | |
| 169 | + | |
168 | 170 | | |
169 | 171 | | |
170 | 172 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
0 commit comments