Commit 6b4ee34
authored
[clr-interp] Tweak GC reporting (#122620)
The interpreter calling convention can result in double reporting of
arguments passed to callee's. This works today as all of the arguments
will be conservatively reported, but it also adds the problem of excess
conservative reporting. This change fixes that most of that problem by
only dropping reporting of conservative pointers when they point into a
callee's stack space.
Note that this does not fix is the scenario where an object reference is
held on the IL stack across a call. In those cases the value shall still
be reported conservatively. This PR also tweaks the Collect0 test to
disable it under the interpreter as the C# compiler generates that
particular problematic pattern for this test case.1 parent 27a5c7d commit 6b4ee34
File tree
3 files changed
+35
-1
lines changed- src
- coreclr/vm
- tests/GC/API/GC
3 files changed
+35
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
9 | 12 | | |
10 | 13 | | |
11 | 14 | | |
| |||
2113 | 2116 | | |
2114 | 2117 | | |
2115 | 2118 | | |
| 2119 | + | |
2116 | 2120 | | |
2117 | 2121 | | |
2118 | 2122 | | |
| |||
2138 | 2142 | | |
2139 | 2143 | | |
2140 | 2144 | | |
| 2145 | + | |
| 2146 | + | |
| 2147 | + | |
2141 | 2148 | | |
| 2149 | + | |
| 2150 | + | |
| 2151 | + | |
| 2152 | + | |
| 2153 | + | |
| 2154 | + | |
| 2155 | + | |
| 2156 | + | |
| 2157 | + | |
| 2158 | + | |
| 2159 | + | |
| 2160 | + | |
| 2161 | + | |
| 2162 | + | |
| 2163 | + | |
| 2164 | + | |
2142 | 2165 | | |
2143 | 2166 | | |
2144 | 2167 | | |
| |||
2220 | 2243 | | |
2221 | 2244 | | |
2222 | 2245 | | |
2223 | | - | |
| 2246 | + | |
| 2247 | + | |
| 2248 | + | |
| 2249 | + | |
| 2250 | + | |
| 2251 | + | |
| 2252 | + | |
| 2253 | + | |
| 2254 | + | |
| 2255 | + | |
2224 | 2256 | | |
2225 | 2257 | | |
2226 | 2258 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
0 commit comments