Chandler Carruth
ae4be1be14
Use inline small storage for small SemIR ID sets in toolchain (#7796)
Apply SmallSize = 16 to frequent identifier and instruction/function
sets in ScopeStack, Class, FacetType, and SpecificCoalescer to avoid
dynamic heap allocations on small scopes. Also defer dest_field_names
set allocation in struct conversion and provide default KeyContext for
SetBase. This was found by inspection, but does seem to be a clear 1.5%
win on overall compile time.
```
Ran baseline and experiment 10 times on 128 x 2450 MHz CPUs
CPU caches:
L1 Data 32Ki
L1 Instruction 32Ki
L2 Unified 512Ki
L3 Unified 32Mi
Load avg: 1.2041 1.16895 2.86133
Computing statistically significant deltas only wherethe P-value < 𝛂 of 0.05
Metric key:
BenchmarkName... 👍 <delta> p=<U-test P-value>
baseline: <median> ± <% at 95th conf>
experiment: <median> ± <% at 95th conf>
Benchmark ┃ CPU Time ┃ CYCLES ┃ INSTRUCTIONS ┃ Lines
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━
BM_CompileApiFileDenseDecls<Lang::Carbon, Phase::Check>/256... │ 👍 -1.768% p=0.0346 │ 👍 -1.683% p=0.0346 │ 👍 0.160% p=0.000428 │ ~
baseline: │ 49.11 ms ± 1.363% │ 155.6 M ± 1.875% │ 293.9 M ± 0.015% │ 4.093 k ± 1.360%
experiment: │ 48.24 ms ± 2.213% │ 153 M ± 2.465% │ 293.4 M ± 0.081% │ 4.166 k ± 2.165%
│ │ │ │
BM_CompileApiFileDenseDecls<Lang::Carbon, Phase::Check>/1024.. │ ?? p=0.159 │ ?? p=0.067 │ 👍 0.153% p=0.000249 │ ~
baseline: │ 50.61 ms ± 2.379% │ 160.7 M ± 2.777% │ 309.7 M ± 0.015% │ 19.96 k ± 2.326%
experiment: │ 50.32 ms ± 0.971% │ 159.6 M ± 0.787% │ 309.2 M ± 0.086% │ 20.07 k ± 0.980%
│ │ │ │
BM_CompileApiFileDenseDecls<Lang::Carbon, Phase::Check>/4096.. │ 👍 -1.593% p=0.0112 │ 👍 -1.632% p=0.00743 │ 👍 0.138% p=0.000328 │ ~
baseline: │ 58.58 ms ± 1.673% │ 186.5 M ± 1.487% │ 371.2 M ± 0.102% │ 70.96 k ± 1.645%
experiment: │ 57.65 ms ± 1.032% │ 183.5 M ± 1.079% │ 370.7 M ± 0.091% │ 72.11 k ± 1.043%
│ │ │ │
BM_CompileApiFileDenseDecls<Lang::Carbon, Phase::Check>/16384. │ 👍 -1.695% p=0.029 │ 👍 -1.823% p=0.0411 │ 👍 0.221% p=0.000428 │ ~
baseline: │ 90.07 ms ± 3.686% │ 287.1 M ± 3.694% │ 618.9 M ± 0.106% │ 186.9 k ± 3.555%
experiment: │ 88.55 ms ± 1.891% │ 281.8 M ± 2.142% │ 617.6 M ± 0.158% │ 190.1 k ± 1.856%
│ │ │ │
BM_CompileApiFileDenseDecls<Lang::Carbon, Phase::Check>/65536. │ 👍 -1.797% p=0.0201 │ 👍 -1.762% p=0.0201 │ 👍 0.222% p=0.000328 │ ~
baseline: │ 222.1 ms ± 2.560% │ 711 M ± 2.417% │ 1.613 G ± 0.158% │ 304.2 k ± 2.496%
experiment: │ 218.1 ms ± 1.950% │ 698.5 M ± 2.010% │ 1.61 G ± 0.075% │ 309.7 k ± 1.989%
│ │ │ │
BM_CompileApiFileDenseDecls<Lang::Carbon, Phase::Check>/262144 │ ?? p=0.398 │ ?? p=0.36 │ 👍 0.166% p=0.000931 │ ~
baseline: │ 782.2 ms ± 2.666% │ 2.502 G ± 2.546% │ 5.596 G ± 0.038% │ 345.8 k ± 2.597%
experiment: │ 780.6 ms ± 4.249% │ 2.483 G ± 4.691% │ 5.587 G ± 0.024% │ 346.5 k ± 4.075%
│ │ │ │
```
Assisted-by: Antigravity with Gemini
2026-09-17 15:49:43 +00:00
..
2026-09-15 21:23:28 +00:00
2025-02-20 22:42:47 +00:00
2026-09-16 01:21:00 +00:00
2026-09-16 01:21:00 +00:00
2026-09-16 01:21:00 +00:00
2026-08-06 13:32:37 +00:00
2026-09-15 16:02:13 +00:00
2026-04-29 18:33:53 +00:00
2025-01-27 23:48:44 +00:00
2026-08-11 21:06:17 +00:00
2026-08-06 13:32:37 +00:00
2026-09-15 20:45:18 +00:00
2026-08-06 13:32:37 +00:00
2026-09-17 15:49:43 +00:00
2026-05-18 20:09:17 +00:00
2026-07-29 16:25:23 +00:00
2026-09-15 16:02:13 +00:00
2026-07-16 15:12:39 +00:00
2026-07-16 15:12:39 +00:00
2026-09-17 15:49:43 +00:00
2026-06-10 15:30:43 +00:00
2025-12-11 21:41:47 +00:00
2026-08-07 16:10:01 +00:00
2025-12-11 21:41:47 +00:00
2026-09-15 21:23:28 +00:00
2026-09-15 21:23:28 +00:00
2026-05-18 20:09:17 +00:00
2026-07-11 01:22:44 +00:00
2026-07-11 01:22:44 +00:00
2026-08-24 15:54:21 +00:00
2026-07-09 20:38:56 +00:00
2025-06-10 22:09:31 +00:00
2026-06-09 21:10:18 +00:00
2026-09-15 23:11:58 +00:00
2026-02-04 17:24:55 +00:00
2026-02-25 15:15:29 +00:00
2026-09-15 16:02:13 +00:00
2026-09-15 16:02:13 +00:00
2026-09-11 00:22:27 +00:00
2026-09-15 16:02:13 +00:00
2026-09-03 17:06:22 +00:00
2026-09-17 15:49:43 +00:00
2026-09-15 16:02:13 +00:00
2026-07-08 19:33:46 +00:00
2026-09-08 20:41:58 +00:00
2026-09-08 20:41:58 +00:00
2026-08-24 21:15:50 +00:00
2026-02-19 16:24:07 +00:00
2026-07-11 01:22:44 +00:00
2026-09-11 16:58:05 +00:00
2026-08-21 18:34:21 +00:00
2026-09-01 16:12:34 +00:00
2026-05-18 20:09:17 +00:00
2026-07-16 19:00:06 +00:00
2025-04-28 19:06:24 +00:00
2026-07-22 16:45:00 +00:00
2025-12-30 19:18:34 +00:00
2026-06-29 17:41:23 +00:00
2026-08-25 18:43:52 +00:00
2026-07-16 15:12:39 +00:00
2025-04-28 19:06:24 +00:00
2026-07-16 15:12:39 +00:00
2026-03-06 17:35:48 +00:00
2026-09-11 18:22:33 +00:00
2026-07-14 00:59:22 +00:00
2026-07-16 15:12:39 +00:00
2026-09-01 16:12:34 +00:00
2026-03-31 22:27:43 +00:00
2026-02-09 22:00:21 +00:00
2026-05-21 21:21:50 +00:00
2026-08-25 18:43:52 +00:00
2026-01-14 16:58:15 +00:00
2026-08-17 20:49:23 +00:00
2026-06-11 16:45:39 +00:00
2026-08-21 04:09:16 +00:00
2026-07-13 19:14:38 +00:00
2026-03-10 20:04:28 +00:00
2026-05-18 20:09:17 +00:00
2026-06-13 00:22:00 +00:00
2026-08-25 18:43:52 +00:00
2026-05-21 00:02:29 +00:00
2024-12-18 00:19:12 +00:00
2026-07-08 17:07:10 +00:00
2026-09-10 15:07:31 +00:00
2026-09-08 20:41:58 +00:00
2026-09-03 19:06:20 +00:00
2026-07-20 19:15:09 +00:00
2026-05-02 01:09:50 +00:00
2026-02-09 22:00:21 +00:00
2026-07-31 20:17:06 +00:00
2025-06-10 22:09:31 +00:00
2026-09-15 21:23:28 +00:00
2026-07-29 16:25:23 +00:00
2026-07-27 14:49:06 +00:00
2025-05-22 18:58:47 +00:00
2026-09-15 16:43:22 +00:00
2026-07-30 19:59:10 +00:00
2026-09-15 16:02:13 +00:00
2025-09-10 21:40:27 +00:00
2026-06-29 17:41:23 +00:00
2026-03-24 20:56:44 +00:00
2025-03-21 23:09:37 +00:00
2025-11-11 16:36:15 +00:00
2026-08-24 18:05:15 +00:00
2026-06-13 00:22:00 +00:00
2026-08-25 18:43:52 +00:00
2026-02-19 16:24:07 +00:00
2025-09-12 22:59:37 +00:00
2026-07-13 19:14:38 +00:00
2026-02-19 23:33:36 +00:00
2026-06-05 22:33:30 +00:00
2026-02-26 20:10:50 +00:00
2026-08-20 15:45:02 +00:00
2026-02-25 15:15:29 +00:00
2026-09-15 16:02:13 +00:00
2026-08-25 18:43:52 +00:00
2026-08-17 20:49:23 +00:00
2026-08-17 20:49:23 +00:00
2026-09-01 16:12:34 +00:00
2026-09-01 16:12:34 +00:00
2026-07-20 19:15:09 +00:00
2026-05-13 17:16:02 +00:00
2025-12-09 20:38:50 +00:00
2025-12-09 20:38:50 +00:00
2025-06-10 22:09:31 +00:00
2025-06-10 22:09:31 +00:00
2026-01-14 19:32:03 +00:00
2026-09-04 01:22:16 +00:00
2026-07-11 01:22:44 +00:00
2026-02-25 15:15:29 +00:00
2025-02-25 02:07:43 +00:00
2026-09-10 22:33:50 +00:00
2026-06-13 00:22:00 +00:00
2026-09-02 20:28:05 +00:00
2026-07-01 19:15:34 +00:00
2026-05-04 21:50:13 +00:00
2026-07-29 16:25:23 +00:00
2026-07-11 01:22:44 +00:00
2025-05-01 22:17:55 +00:00
2025-05-01 22:17:55 +00:00
2026-03-28 00:06:06 +00:00
2026-03-26 15:26:56 +00:00
2026-03-26 15:26:56 +00:00
2026-07-14 00:59:22 +00:00
2026-02-19 23:33:36 +00:00
2025-11-14 13:50:56 +00:00
2026-07-16 15:12:39 +00:00
2026-09-17 15:49:43 +00:00
2026-07-20 19:15:09 +00:00
2026-07-07 13:23:47 +00:00
2026-09-01 16:12:34 +00:00
2026-07-24 18:43:12 +00:00
2026-09-08 20:41:58 +00:00
2026-07-29 16:25:23 +00:00
2026-05-11 14:17:18 +00:00
2026-05-07 22:33:47 +00:00
2026-09-09 23:05:48 +00:00
2026-07-20 19:15:09 +00:00
2026-02-26 18:57:15 +00:00
2026-02-19 23:33:36 +00:00