araq
c6f70374bc
IC: make timed arm the profiler, and price the C compiler
...
`timed` recorded into `profNanos` but never called `armProf()`, so a
process whose only instrumentation is a `timed` never registered the exit
dump and reported nothing at all. The `merge`, `emit` and `link` stages
have been silently absent from every profile in this branch — including
the one I used to claim the backend was fully accounted for.
With them present, Atlas cold at batch size 16, parallel (9.66s elapsed):
frontend 181 proc 10.60 s summed process wall
lower 14 proc 4.49 s
cg 14 proc 4.50 s
merge 1 proc 0.20 s
emit 14 proc 0.42 s
link 1 proc 1.65 s <- the entire C compile + link
That settles the C compiler as a target: its 12.2s of CPU is 1.65s of
wall, because `callCCompiler` fans out across cores, and the excess over
a whole-program build is ~0.4s of it. `bnode.nim` records where the
excess is — 3.8MB of the 5.4MB is per-TU prototypes and typedefs, which
is intrinsic to emitting 204 translation units instead of 139 — and why
the obvious sub-target is not one either: 53 of the 204 object files
define nothing, and compiling all 53 costs 0.23s of user time.
Fewer, larger TUs is the only real fix, and it trades directly against
what IC is for: a sandwich edit rebuilds exactly one `.c` and one `.o`.
Behind `-d:icBNodeProf`. ic 42/42.
2026-08-31 19:59:09 +02:00
..
2026-08-28 23:13:16 +02:00
2025-11-13 21:31:24 +01:00
2026-08-21 21:57:51 +08:00
2026-08-17 23:37:46 +02:00
2026-08-31 19:38:07 +02:00
2026-08-30 16:16:08 +02:00
2026-08-30 15:43:14 +02:00
2026-08-30 08:07:38 +02:00
2024-04-16 12:46:59 +02:00
2026-06-11 14:10:42 +02:00
2023-10-11 17:44:14 +02:00
2026-08-31 19:59:09 +02:00
2026-08-30 14:21:52 +02:00
2026-02-10 13:21:35 +01:00
2024-11-19 08:51:54 +01:00
2026-08-25 11:59:19 +02:00
2024-11-18 17:34:37 +01:00
2024-11-18 17:34:37 +01:00
2026-08-30 20:38:00 +02:00
2026-08-30 16:07:20 +02:00
2026-08-30 15:43:14 +02:00
2022-11-30 21:51:13 +01:00
2026-08-29 06:57:55 +02:00
2026-08-30 15:43:14 +02:00
2026-06-25 23:20:34 +02:00
2026-08-30 15:43:14 +02:00
2026-08-30 15:43:14 +02:00
2026-08-30 10:23:43 +02:00
2026-08-31 15:38:15 +02:00
2026-08-31 10:18:09 +02:00
2026-08-25 11:59:19 +02:00
2026-07-24 14:06:27 +02:00
2026-06-24 21:58:51 +02:00
2026-08-27 19:35:11 +02:00
2026-08-31 10:53:14 +02:00
2023-06-18 16:06:14 +02:00
2026-08-28 22:31:58 +02:00
2026-02-01 17:06:33 +01:00
2017-01-07 22:35:09 +01:00
2022-06-10 20:40:08 +02:00
2023-10-29 14:48:11 +01:00
2026-08-31 19:38:07 +02:00
2026-08-21 21:57:51 +08:00
2026-08-17 15:02:49 +02:00
2026-08-17 15:02:49 +02:00
2026-08-25 11:59:19 +02:00
2023-11-20 21:12:13 +01:00
2025-12-11 18:22:38 +01:00
2025-12-11 18:22:38 +01:00
2024-08-28 20:46:36 +02:00
2025-07-14 23:14:06 +02:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2026-05-27 23:29:27 +02:00
2025-11-21 21:26:43 +01:00
2026-08-27 19:35:11 +02:00
2026-07-03 15:52:41 +02:00
2026-07-04 10:13:39 +02:00
2026-08-31 19:59:09 +02:00
2023-10-29 14:48:11 +01:00
2026-07-09 22:13:39 +02:00
2026-05-08 06:50:13 +02:00
2020-06-01 19:21:41 +02:00
2026-08-28 22:26:18 +02:00
2025-11-25 12:49:23 +01:00
2025-10-13 13:47:06 +02:00
2026-08-17 15:02:49 +02:00
2024-12-27 19:42:18 +01:00
2026-06-14 22:35:06 +02:00
2026-08-26 18:01:06 +02:00
2025-07-14 23:15:44 +02:00
2026-08-26 12:12:51 +02:00
2026-08-25 11:59:19 +02:00
2026-08-03 12:15:44 +02:00
2026-08-17 15:02:49 +02:00
2026-08-25 11:59:19 +02:00
2025-12-11 18:22:38 +01:00
2026-06-08 09:00:00 +02:00
2026-01-23 22:50:00 +01:00
2026-04-02 07:19:43 +02:00
2026-06-14 22:35:06 +02:00
2026-06-25 23:20:34 +02:00
2021-01-12 09:36:51 +01:00
2026-03-07 07:39:57 +01:00
2026-08-31 17:03:05 +02:00
2026-08-28 20:03:14 +02:00
2026-08-31 19:38:07 +02:00
2026-01-09 13:10:04 +01:00
2026-06-14 22:35:06 +02:00
2026-08-17 15:02:49 +02:00
2026-08-31 16:19:43 +02:00
2026-07-03 15:52:41 +02:00
2026-08-31 09:30:12 +02:00
2026-06-08 09:00:00 +02:00
2026-06-29 18:24:49 +02:00
2026-08-27 19:35:11 +02:00
2023-12-15 08:13:25 +01:00
2026-06-24 21:58:51 +02:00
2025-11-13 21:31:24 +01:00
2023-10-29 14:48:11 +01:00
2023-10-29 14:48:11 +01:00
2025-12-11 18:22:38 +01:00
2026-08-30 16:25:13 +02:00
2023-10-29 14:48:11 +01:00
2024-08-12 15:33:26 +02:00
2023-04-17 20:55:22 +02:00
2025-04-03 12:54:00 +02:00
2026-08-31 10:53:14 +02:00
2023-08-06 14:26:21 +02:00
2026-08-17 15:02:49 +02:00
2025-09-24 06:29:57 +02:00
2026-06-14 22:35:06 +02:00
2022-08-24 09:44:16 +02:00
2026-01-16 12:19:17 +01:00
2023-10-29 14:48:11 +01:00
2025-04-12 08:39:11 +02:00
2026-08-31 17:03:05 +02:00
2026-08-17 15:02:49 +02:00
2026-06-11 23:49:50 +02:00
2018-05-27 19:19:12 +02:00
2026-02-10 13:21:35 +01:00
2023-10-29 14:48:11 +01:00
2026-08-17 15:02:49 +02:00
2024-09-03 09:19:52 +02:00
2023-07-02 22:36:05 +02:00
2026-08-17 15:02:49 +02:00
2023-10-29 14:48:11 +01:00
2025-04-12 08:39:11 +02:00
2026-08-17 15:02:49 +02:00
2023-08-10 14:26:40 +02:00
2020-09-11 01:04:07 +02:00
2026-02-10 00:04:11 +01:00
2026-08-17 15:02:49 +02:00
2026-08-25 11:59:19 +02:00
2026-08-11 22:27:49 +02:00
2026-08-25 11:59:19 +02:00
2025-12-11 18:22:38 +01:00
2026-08-17 15:02:49 +02:00
2026-08-26 08:40:57 +02:00
2026-08-25 11:59:19 +02:00
2025-12-11 18:22:38 +01:00
2026-08-27 19:35:11 +02:00
2026-08-17 15:02:49 +02:00
2025-12-11 18:22:38 +01:00
2026-08-25 11:59:19 +02:00
2026-08-29 14:40:46 +02:00
2022-12-11 16:58:50 +01:00
2026-08-17 15:02:49 +02:00
2026-08-25 11:59:19 +02:00
2026-08-25 11:59:19 +02:00
2026-08-28 22:33:20 +02:00
2026-08-28 22:31:58 +02:00
2025-12-26 21:59:38 +01:00
2026-06-13 10:17:44 +02:00
2026-08-17 15:02:49 +02:00
2026-08-17 15:02:49 +02:00
2026-06-24 21:58:51 +02:00
2025-07-18 08:44:36 +02:00
2024-04-10 14:41:16 +02:00
2023-08-10 14:26:40 +02:00
2026-08-30 21:10:49 +02:00
2026-08-30 15:43:14 +02:00
2026-08-25 11:59:19 +02:00
2026-03-30 15:09:11 +02:00
2026-08-25 11:59:19 +02:00
2026-08-30 15:43:14 +02:00
2023-10-29 14:48:11 +01:00
2026-08-03 12:02:29 +02:00
2026-08-17 15:02:49 +02:00
2023-12-12 16:54:50 +01:00
2026-06-13 07:04:17 +02:00
2026-03-09 11:59:12 +01:00
2026-08-17 15:02:49 +02:00
2023-08-10 14:26:40 +02:00
2024-04-10 14:41:16 +02:00
2026-08-17 15:02:49 +02:00
2026-08-17 15:02:49 +02:00
2026-08-25 11:59:19 +02:00
2023-12-25 07:12:54 +01:00