Commit 184d17d
authored
[mono][jit] Add an option to use an mrgctx for all gshared methods. (#82981)
Enable it by default on WASM.
In this mode, all gshared methods get an mrgctx, which means they can access
their data using a simple load from the mrgctx instead of having to call
a rgctx fetch trampoline.
Upsides:
- much simpler.
- faster access to gshared data
- smaller code and data size in the AOT case
- if enabled by default on all platforms, large amount of gshared
code can be removed
Downsides:
- the methods have to initialize their mrgctx in their prolog
- on non-wasm platforms, indirect calls to gshared methods
(like virtual calls) will need to use rgctx trampolines more often
to pass the mrgctx.1 parent 342c4ed commit 184d17d
File tree
6 files changed
+32
-9
lines changed- src/mono/mono
- mini
- utils
6 files changed
+32
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7248 | 7248 | | |
7249 | 7249 | | |
7250 | 7250 | | |
7251 | | - | |
| 7251 | + | |
| 7252 | + | |
7252 | 7253 | | |
7253 | 7254 | | |
7254 | 7255 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2474 | 2474 | | |
2475 | 2475 | | |
2476 | 2476 | | |
| 2477 | + | |
| 2478 | + | |
| 2479 | + | |
2477 | 2480 | | |
2478 | 2481 | | |
2479 | 2482 | | |
| |||
2598 | 2601 | | |
2599 | 2602 | | |
2600 | 2603 | | |
| 2604 | + | |
2601 | 2605 | | |
2602 | 2606 | | |
2603 | 2607 | | |
| |||
7973 | 7977 | | |
7974 | 7978 | | |
7975 | 7979 | | |
7976 | | - | |
| 7980 | + | |
7977 | 7981 | | |
7978 | 7982 | | |
7979 | 7983 | | |
| |||
8393 | 8397 | | |
8394 | 8398 | | |
8395 | 8399 | | |
8396 | | - | |
| 8400 | + | |
8397 | 8401 | | |
8398 | 8402 | | |
8399 | 8403 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1188 | 1188 | | |
1189 | 1189 | | |
1190 | 1190 | | |
1191 | | - | |
| 1191 | + | |
1192 | 1192 | | |
1193 | 1193 | | |
1194 | 1194 | | |
| |||
1260 | 1260 | | |
1261 | 1261 | | |
1262 | 1262 | | |
1263 | | - | |
| 1263 | + | |
1264 | 1264 | | |
1265 | 1265 | | |
1266 | 1266 | | |
| |||
1283 | 1283 | | |
1284 | 1284 | | |
1285 | 1285 | | |
1286 | | - | |
| 1286 | + | |
1287 | 1287 | | |
1288 | 1288 | | |
1289 | 1289 | | |
| |||
1317 | 1317 | | |
1318 | 1318 | | |
1319 | 1319 | | |
1320 | | - | |
| 1320 | + | |
1321 | 1321 | | |
1322 | 1322 | | |
1323 | 1323 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2956 | 2956 | | |
2957 | 2957 | | |
2958 | 2958 | | |
| 2959 | + | |
| 2960 | + | |
2959 | 2961 | | |
2960 | 2962 | | |
2961 | 2963 | | |
| |||
3726 | 3728 | | |
3727 | 3729 | | |
3728 | 3730 | | |
| 3731 | + | |
| 3732 | + | |
| 3733 | + | |
3729 | 3734 | | |
3730 | 3735 | | |
3731 | 3736 | | |
| |||
4081 | 4086 | | |
4082 | 4087 | | |
4083 | 4088 | | |
4084 | | - | |
| 4089 | + | |
| 4090 | + | |
| 4091 | + | |
| 4092 | + | |
| 4093 | + | |
4085 | 4094 | | |
4086 | 4095 | | |
4087 | 4096 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3051 | 3051 | | |
3052 | 3052 | | |
3053 | 3053 | | |
3054 | | - | |
| 3054 | + | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
3055 | 3058 | | |
3056 | 3059 | | |
3057 | 3060 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
148 | 154 | | |
149 | 155 | | |
150 | 156 | | |
0 commit comments