Commit dbf5c58
authored
JIT: Refactor call argument representation (#67238)
This refactors the JIT's representation of call arguments. It replaces
`GenTreeCall::Use` and `fgArgTabEntry` with a single class `CallArg`.
`CallArg` always contains space for ABI information and contains two
intrusive linked list nodes: one for all args (similar to current
`gtCallArgs`) where all standard arguments are always in argument order,
and one for late args (similar to current `gtCallLateArgs`) that may be
reordered. The late args list may also not contain all arguments.
`fgArgInfo` is also replaced by a new class `CallArgs` that is stored
inline in `GenTreeCall`. It encapsulates all handling of arguments
(insertion/removal). The change also begins treating the 'this' argument
as a normal argument with `CallArgs` providing convenient access to it
when necessary.
The main benefit of this change is to avoid keeping track of the side
table `fgArgInfo` and having to scan through this side table repeatedly
when we need to query argument information. In addition it gives more
convenient ways to access well known arguments like 'this', the ret
buffer, VSD cell, etc. Finally, it also serves as a nice clean-up in the JIT.1 parent 6543a04 commit dbf5c58
File tree
42 files changed
+3447
-4422
lines changed- docs/design/coreclr/jit
- src
- coreclr
- inc
- jit
- tests/JIT/Regression/JitBlue/Runtime_49078
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
42 files changed
+3447
-4422
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
58 | 61 | | |
59 | 62 | | |
60 | 63 | | |
| |||
77 | 80 | | |
78 | 81 | | |
79 | 82 | | |
80 | | - | |
81 | | - | |
82 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
83 | 86 | | |
84 | 87 | | |
85 | 88 | | |
| |||
93 | 96 | | |
94 | 97 | | |
95 | 98 | | |
96 | | - | |
| 99 | + | |
97 | 100 | | |
98 | 101 | | |
99 | 102 | | |
| |||
104 | 107 | | |
105 | 108 | | |
106 | 109 | | |
107 | | - | |
| 110 | + | |
108 | 111 | | |
109 | 112 | | |
110 | 113 | | |
| |||
123 | 126 | | |
124 | 127 | | |
125 | 128 | | |
126 | | - | |
| 129 | + | |
127 | 130 | | |
128 | 131 | | |
129 | 132 | | |
130 | | - | |
131 | | - | |
| 133 | + | |
| 134 | + | |
132 | 135 | | |
133 | | - | |
| 136 | + | |
134 | 137 | | |
135 | | - | |
| 138 | + | |
136 | 139 | | |
137 | 140 | | |
138 | 141 | | |
139 | 142 | | |
140 | | - | |
| 143 | + | |
141 | 144 | | |
142 | 145 | | |
143 | 146 | | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
151 | 154 | | |
152 | 155 | | |
153 | | - | |
| 156 | + | |
154 | 157 | | |
155 | | - | |
156 | | - | |
| 158 | + | |
| 159 | + | |
157 | 160 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
| 54 | + | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1115 | 1115 | | |
1116 | 1116 | | |
1117 | 1117 | | |
1118 | | - | |
| 1118 | + | |
1119 | 1119 | | |
1120 | 1120 | | |
1121 | 1121 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2548 | 2548 | | |
2549 | 2549 | | |
2550 | 2550 | | |
2551 | | - | |
2552 | | - | |
2553 | | - | |
| 2551 | + | |
| 2552 | + | |
2554 | 2553 | | |
2555 | 2554 | | |
2556 | 2555 | | |
| |||
2697 | 2696 | | |
2698 | 2697 | | |
2699 | 2698 | | |
2700 | | - | |
| 2699 | + | |
2701 | 2700 | | |
2702 | 2701 | | |
2703 | 2702 | | |
| |||
4485 | 4484 | | |
4486 | 4485 | | |
4487 | 4486 | | |
4488 | | - | |
| 4487 | + | |
4489 | 4488 | | |
4490 | 4489 | | |
4491 | 4490 | | |
| |||
4544 | 4543 | | |
4545 | 4544 | | |
4546 | 4545 | | |
4547 | | - | |
| 4546 | + | |
4548 | 4547 | | |
4549 | 4548 | | |
4550 | 4549 | | |
4551 | 4550 | | |
4552 | 4551 | | |
4553 | | - | |
| 4552 | + | |
4554 | 4553 | | |
4555 | 4554 | | |
4556 | 4555 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1365 | 1365 | | |
1366 | 1366 | | |
1367 | 1367 | | |
1368 | | - | |
| 1368 | + | |
1369 | 1369 | | |
1370 | 1370 | | |
1371 | 1371 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
763 | 763 | | |
764 | 764 | | |
765 | 765 | | |
766 | | - | |
767 | | - | |
768 | | - | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
769 | 769 | | |
770 | 770 | | |
771 | 771 | | |
| |||
3125 | 3125 | | |
3126 | 3126 | | |
3127 | 3127 | | |
3128 | | - | |
| 3128 | + | |
3129 | 3129 | | |
3130 | | - | |
3131 | | - | |
3132 | | - | |
3133 | | - | |
| 3130 | + | |
| 3131 | + | |
3134 | 3132 | | |
3135 | 3133 | | |
3136 | 3134 | | |
3137 | 3135 | | |
3138 | | - | |
| 3136 | + | |
3139 | 3137 | | |
3140 | 3138 | | |
3141 | 3139 | | |
3142 | 3140 | | |
3143 | 3141 | | |
3144 | | - | |
| 3142 | + | |
3145 | 3143 | | |
3146 | 3144 | | |
3147 | 3145 | | |
| |||
3162 | 3160 | | |
3163 | 3161 | | |
3164 | 3162 | | |
3165 | | - | |
| 3163 | + | |
3166 | 3164 | | |
3167 | 3165 | | |
3168 | | - | |
| 3166 | + | |
3169 | 3167 | | |
3170 | | - | |
| 3168 | + | |
3171 | 3169 | | |
3172 | | - | |
| 3170 | + | |
3173 | 3171 | | |
3174 | 3172 | | |
3175 | 3173 | | |
3176 | 3174 | | |
3177 | 3175 | | |
3178 | 3176 | | |
3179 | 3177 | | |
3180 | | - | |
| 3178 | + | |
3181 | 3179 | | |
3182 | 3180 | | |
3183 | 3181 | | |
| |||
3409 | 3407 | | |
3410 | 3408 | | |
3411 | 3409 | | |
3412 | | - | |
| 3410 | + | |
3413 | 3411 | | |
3414 | | - | |
3415 | | - | |
| 3412 | + | |
3416 | 3413 | | |
3417 | | - | |
| 3414 | + | |
3418 | 3415 | | |
3419 | 3416 | | |
3420 | 3417 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6488 | 6488 | | |
6489 | 6489 | | |
6490 | 6490 | | |
6491 | | - | |
| 6491 | + | |
6492 | 6492 | | |
6493 | 6493 | | |
6494 | 6494 | | |
6495 | 6495 | | |
6496 | | - | |
| 6496 | + | |
6497 | 6497 | | |
6498 | | - | |
| 6498 | + | |
6499 | 6499 | | |
6500 | 6500 | | |
6501 | | - | |
| 6501 | + | |
6502 | 6502 | | |
6503 | 6503 | | |
6504 | 6504 | | |
6505 | 6505 | | |
6506 | 6506 | | |
6507 | 6507 | | |
6508 | 6508 | | |
6509 | | - | |
6510 | | - | |
6511 | | - | |
6512 | | - | |
| 6509 | + | |
6513 | 6510 | | |
6514 | | - | |
6515 | | - | |
6516 | | - | |
6517 | | - | |
6518 | | - | |
6519 | | - | |
| 6511 | + | |
| 6512 | + | |
6520 | 6513 | | |
6521 | | - | |
6522 | | - | |
6523 | 6514 | | |
6524 | 6515 | | |
6525 | 6516 | | |
| |||
0 commit comments