This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Commit 673f56a
committed
Stop hoisting statics above cctors
Extend the logic in optLoopHoist around `CLS_VAR` nodes to ensure we don't
hoist any tree that contains a `CLS_VAR` for a field with the flag
`CORINFO_FLG_FIELD_INITCLASS` set, unless we also (identify and) hoist the
corresponding static init helper call. The previous logic was
insufficient in that it blocked hoisting of singleton `CLS_VAR` nodes, but
not hoisting of trees that contain `CLS_VAR` nodes as sub-trees.
Add flag `GTF_FLD_INITCLASS`/`GTF_CLS_VAR_INITCLASS` so that optLoopHoist
can recall which fields are paired with static init helper calls, and only
block the hoisting of their trees.
Fixes #10780.1 parent eac27ca commit 673f56a
File tree
7 files changed
+174
-26
lines changed- src/jit
- tests/src/JIT/Regression/JitBlue/GitHub_10780
7 files changed
+174
-26
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5005 | 5005 | | |
5006 | 5006 | | |
5007 | 5007 | | |
5008 | | - | |
| 5008 | + | |
| 5009 | + | |
5009 | 5010 | | |
5010 | 5011 | | |
5011 | 5012 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
926 | 926 | | |
927 | 927 | | |
928 | 928 | | |
| 929 | + | |
929 | 930 | | |
930 | 931 | | |
931 | 932 | | |
| |||
955 | 956 | | |
956 | 957 | | |
957 | 958 | | |
958 | | - | |
959 | | - | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
960 | 963 | | |
961 | 964 | | |
962 | 965 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6057 | 6057 | | |
6058 | 6058 | | |
6059 | 6059 | | |
| 6060 | + | |
| 6061 | + | |
| 6062 | + | |
| 6063 | + | |
| 6064 | + | |
6060 | 6065 | | |
6061 | 6066 | | |
6062 | 6067 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6628 | 6628 | | |
6629 | 6629 | | |
6630 | 6630 | | |
6631 | | - | |
6632 | | - | |
6633 | | - | |
| 6631 | + | |
| 6632 | + | |
| 6633 | + | |
| 6634 | + | |
6634 | 6635 | | |
6635 | 6636 | | |
6636 | 6637 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6008 | 6008 | | |
6009 | 6009 | | |
6010 | 6010 | | |
6011 | | - | |
| 6011 | + | |
| 6012 | + | |
| 6013 | + | |
6012 | 6014 | | |
6013 | 6015 | | |
6014 | 6016 | | |
| |||
6114 | 6116 | | |
6115 | 6117 | | |
6116 | 6118 | | |
6117 | | - | |
| 6119 | + | |
| 6120 | + | |
| 6121 | + | |
| 6122 | + | |
6118 | 6123 | | |
6119 | | - | |
6120 | | - | |
| 6124 | + | |
| 6125 | + | |
| 6126 | + | |
| 6127 | + | |
| 6128 | + | |
| 6129 | + | |
6121 | 6130 | | |
6122 | 6131 | | |
6123 | 6132 | | |
6124 | 6133 | | |
6125 | 6134 | | |
6126 | 6135 | | |
| 6136 | + | |
6127 | 6137 | | |
6128 | 6138 | | |
6129 | 6139 | | |
6130 | 6140 | | |
6131 | | - | |
| 6141 | + | |
| 6142 | + | |
6132 | 6143 | | |
6133 | 6144 | | |
6134 | | - | |
| 6145 | + | |
| 6146 | + | |
| 6147 | + | |
6135 | 6148 | | |
6136 | 6149 | | |
6137 | 6150 | | |
6138 | | - | |
| 6151 | + | |
6139 | 6152 | | |
6140 | 6153 | | |
6141 | 6154 | | |
| 6155 | + | |
| 6156 | + | |
| 6157 | + | |
| 6158 | + | |
| 6159 | + | |
| 6160 | + | |
| 6161 | + | |
| 6162 | + | |
| 6163 | + | |
| 6164 | + | |
| 6165 | + | |
| 6166 | + | |
| 6167 | + | |
| 6168 | + | |
| 6169 | + | |
| 6170 | + | |
| 6171 | + | |
| 6172 | + | |
| 6173 | + | |
| 6174 | + | |
| 6175 | + | |
| 6176 | + | |
| 6177 | + | |
| 6178 | + | |
| 6179 | + | |
| 6180 | + | |
| 6181 | + | |
6142 | 6182 | | |
6143 | 6183 | | |
6144 | | - | |
6145 | | - | |
6146 | | - | |
| 6184 | + | |
| 6185 | + | |
| 6186 | + | |
6147 | 6187 | | |
6148 | 6188 | | |
6149 | 6189 | | |
6150 | 6190 | | |
6151 | 6191 | | |
6152 | 6192 | | |
6153 | | - | |
| 6193 | + | |
6154 | 6194 | | |
6155 | 6195 | | |
6156 | 6196 | | |
| |||
6189 | 6229 | | |
6190 | 6230 | | |
6191 | 6231 | | |
6192 | | - | |
6193 | | - | |
6194 | | - | |
6195 | | - | |
6196 | | - | |
6197 | | - | |
6198 | | - | |
6199 | | - | |
6200 | 6232 | | |
6201 | 6233 | | |
6202 | 6234 | | |
| |||
6290 | 6322 | | |
6291 | 6323 | | |
6292 | 6324 | | |
6293 | | - | |
| 6325 | + | |
| 6326 | + | |
6294 | 6327 | | |
6295 | 6328 | | |
6296 | 6329 | | |
| |||
Lines changed: 52 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
Lines changed: 53 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
0 commit comments