Commit 0d02150
authored
[clang][AST] Reduce some AST node size. (#142585)
This patch reduces the size of several AST nodes by moving some fields
into the free bitfield space in the base `Stmt` class:
* `CXXForRangeStmt`: 96 → 88 bytes
* `ChooseExpr`: 56 → 48 bytes
* `ArrayTypeTraitExpr`: 56 → 48 bytes
* `ExpressionTraitExpr`: 40 → 32 bytes
* `CXXFoldExpr`: 64 → 56 bytes
* `ShuffleExpr`: 40 → 32 bytes
* `PackIndexingExpr`: 48 → 40 bytes
There are no noticeable memory savings (`Expr/Stmt` memory usage
125,824,496 vs 125,826,336 bytes for `SemaExpr.cpp`) in my testing,
likely because these node types are not among the most common in typical
ASTs.1 parent 50f9b8a commit 0d02150
File tree
8 files changed
+147
-65
lines changed- clang
- include/clang/AST
- lib
- AST
- Serialization
8 files changed
+147
-65
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4579 | 4579 | | |
4580 | 4580 | | |
4581 | 4581 | | |
4582 | | - | |
4583 | 4582 | | |
4584 | 4583 | | |
4585 | 4584 | | |
| |||
4605 | 4604 | | |
4606 | 4605 | | |
4607 | 4606 | | |
4608 | | - | |
| 4607 | + | |
4609 | 4608 | | |
4610 | 4609 | | |
4611 | 4610 | | |
4612 | 4611 | | |
4613 | 4612 | | |
4614 | 4613 | | |
4615 | | - | |
| 4614 | + | |
| 4615 | + | |
4616 | 4616 | | |
4617 | 4617 | | |
4618 | 4618 | | |
4619 | | - | |
| 4619 | + | |
| 4620 | + | |
4620 | 4621 | | |
4621 | 4622 | | |
4622 | 4623 | | |
4623 | 4624 | | |
4624 | 4625 | | |
4625 | 4626 | | |
4626 | | - | |
| 4627 | + | |
| 4628 | + | |
4627 | 4629 | | |
4628 | 4630 | | |
4629 | 4631 | | |
4630 | 4632 | | |
4631 | 4633 | | |
4632 | 4634 | | |
4633 | 4635 | | |
4634 | | - | |
| 4636 | + | |
| 4637 | + | |
4635 | 4638 | | |
4636 | 4639 | | |
4637 | | - | |
| 4640 | + | |
| 4641 | + | |
4638 | 4642 | | |
4639 | 4643 | | |
4640 | 4644 | | |
| |||
4776 | 4780 | | |
4777 | 4781 | | |
4778 | 4782 | | |
4779 | | - | |
| 4783 | + | |
4780 | 4784 | | |
4781 | 4785 | | |
4782 | 4786 | | |
4783 | 4787 | | |
4784 | | - | |
4785 | | - | |
| 4788 | + | |
| 4789 | + | |
4786 | 4790 | | |
4787 | 4791 | | |
4788 | 4792 | | |
| |||
4798 | 4802 | | |
4799 | 4803 | | |
4800 | 4804 | | |
4801 | | - | |
| 4805 | + | |
4802 | 4806 | | |
4803 | | - | |
| 4807 | + | |
4804 | 4808 | | |
4805 | 4809 | | |
4806 | 4810 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2974 | 2974 | | |
2975 | 2975 | | |
2976 | 2976 | | |
2977 | | - | |
2978 | | - | |
2979 | | - | |
2980 | | - | |
2981 | 2977 | | |
2982 | 2978 | | |
2983 | 2979 | | |
| |||
2999 | 2995 | | |
3000 | 2996 | | |
3001 | 2997 | | |
3002 | | - | |
| 2998 | + | |
3003 | 2999 | | |
3004 | 3000 | | |
3005 | 3001 | | |
3006 | | - | |
| 3002 | + | |
| 3003 | + | |
| 3004 | + | |
3007 | 3005 | | |
3008 | 3006 | | |
3009 | 3007 | | |
3010 | 3008 | | |
3011 | | - | |
| 3009 | + | |
| 3010 | + | |
| 3011 | + | |
3012 | 3012 | | |
3013 | 3013 | | |
3014 | 3014 | | |
3015 | 3015 | | |
3016 | | - | |
| 3016 | + | |
| 3017 | + | |
| 3018 | + | |
3017 | 3019 | | |
3018 | 3020 | | |
3019 | 3021 | | |
| |||
3045 | 3047 | | |
3046 | 3048 | | |
3047 | 3049 | | |
3048 | | - | |
3049 | | - | |
3050 | | - | |
3051 | | - | |
3052 | | - | |
3053 | | - | |
3054 | | - | |
3055 | | - | |
3056 | 3050 | | |
3057 | 3051 | | |
3058 | 3052 | | |
| |||
3068 | 3062 | | |
3069 | 3063 | | |
3070 | 3064 | | |
3071 | | - | |
3072 | | - | |
| 3065 | + | |
| 3066 | + | |
| 3067 | + | |
| 3068 | + | |
3073 | 3069 | | |
3074 | | - | |
| 3070 | + | |
| 3071 | + | |
3075 | 3072 | | |
3076 | 3073 | | |
3077 | 3074 | | |
3078 | 3075 | | |
3079 | | - | |
| 3076 | + | |
| 3077 | + | |
| 3078 | + | |
| 3079 | + | |
3080 | 3080 | | |
3081 | 3081 | | |
3082 | 3082 | | |
3083 | 3083 | | |
3084 | | - | |
| 3084 | + | |
| 3085 | + | |
| 3086 | + | |
3085 | 3087 | | |
3086 | 3088 | | |
3087 | 3089 | | |
3088 | | - | |
| 3090 | + | |
3089 | 3091 | | |
3090 | 3092 | | |
3091 | 3093 | | |
| |||
4506 | 4508 | | |
4507 | 4509 | | |
4508 | 4510 | | |
4509 | | - | |
4510 | | - | |
4511 | | - | |
4512 | | - | |
4513 | | - | |
4514 | | - | |
4515 | 4511 | | |
4516 | 4512 | | |
4517 | 4513 | | |
4518 | 4514 | | |
4519 | 4515 | | |
4520 | 4516 | | |
4521 | | - | |
4522 | | - | |
4523 | | - | |
4524 | | - | |
| 4517 | + | |
| 4518 | + | |
| 4519 | + | |
4525 | 4520 | | |
4526 | 4521 | | |
4527 | 4522 | | |
| |||
4534 | 4529 | | |
4535 | 4530 | | |
4536 | 4531 | | |
4537 | | - | |
| 4532 | + | |
4538 | 4533 | | |
4539 | 4534 | | |
4540 | 4535 | | |
| |||
4548 | 4543 | | |
4549 | 4544 | | |
4550 | 4545 | | |
4551 | | - | |
| 4546 | + | |
| 4547 | + | |
| 4548 | + | |
4552 | 4549 | | |
4553 | 4550 | | |
4554 | 4551 | | |
4555 | | - | |
| 4552 | + | |
| 4553 | + | |
4556 | 4554 | | |
4557 | 4555 | | |
4558 | 4556 | | |
| |||
4590 | 4588 | | |
4591 | 4589 | | |
4592 | 4590 | | |
4593 | | - | |
| 4591 | + | |
| 4592 | + | |
4594 | 4593 | | |
4595 | 4594 | | |
4596 | 4595 | | |
| |||
4988 | 4987 | | |
4989 | 4988 | | |
4990 | 4989 | | |
4991 | | - | |
4992 | 4990 | | |
4993 | 4991 | | |
4994 | 4992 | | |
| |||
5021 | 5019 | | |
5022 | 5020 | | |
5023 | 5021 | | |
5024 | | - | |
| 5022 | + | |
5025 | 5023 | | |
5026 | 5024 | | |
5027 | 5025 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
736 | 737 | | |
737 | 738 | | |
738 | 739 | | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
739 | 749 | | |
740 | 750 | | |
741 | 751 | | |
| |||
749 | 759 | | |
750 | 760 | | |
751 | 761 | | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
752 | 773 | | |
753 | 774 | | |
754 | 775 | | |
| |||
1184 | 1205 | | |
1185 | 1206 | | |
1186 | 1207 | | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
1187 | 1259 | | |
1188 | 1260 | | |
1189 | 1261 | | |
| |||
1279 | 1351 | | |
1280 | 1352 | | |
1281 | 1353 | | |
| 1354 | + | |
1282 | 1355 | | |
1283 | 1356 | | |
1284 | 1357 | | |
| 1358 | + | |
1285 | 1359 | | |
1286 | 1360 | | |
1287 | 1361 | | |
| |||
1308 | 1382 | | |
1309 | 1383 | | |
1310 | 1384 | | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
1311 | 1389 | | |
1312 | 1390 | | |
1313 | 1391 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | | - | |
137 | 136 | | |
138 | 137 | | |
139 | 138 | | |
140 | 139 | | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| |||
0 commit comments