slang-netlist  0.12.0
Loading...
Searching...
No Matches
BuildProfile.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4
5namespace slang::netlist {
6
9 // Phase-level timings (seconds).
10 double phase1_collectSeconds = 0; // Sequential AST traversal
11 double phase2_parallelSeconds = 0; // Parallel DFA dispatch + wait
12 double phase3_drainSeconds = 0; // Sequential drain of deferred work
13 double phase4_rvalueSeconds = 0; // Sequential pending R-value resolution
14 double phase5_mergeEdgesSeconds = 0; // Sequential merge of parallel edges
15
16 // Drain sub-phase timings (seconds).
19
20 // Work item counts.
23
24 // Per-task timing statistics (seconds).
25 double taskMinSeconds = 0;
26 double taskMaxSeconds = 0;
27 double taskMeanSeconds = 0;
29 // Summed over concurrently running tasks, so under a saturated pool
30 // this approaches numThreads * phase2_parallelSeconds regardless of
31 // how much work was done. Use taskCpuTotalSeconds to compare the cost
32 // of a build across thread counts.
33 double taskTotalSeconds = 0; // Sum of all task wall times
34
35 // Sum of the CPU time consumed by each task. Unlike the wall-time sum
36 // this is independent of how many tasks ran at once, so comparing it
37 // across thread counts shows what parallelism actually costs.
39
40 unsigned numThreads = 0;
41
48};
49
50} // namespace slang::netlist
Definition FormatBuffer.hpp:9
Profiling data collected during netlist graph construction.
Definition BuildProfile.hpp:8
double phase5_mergeEdgesSeconds
Definition BuildProfile.hpp:14
auto totalSeconds() const -> double
Total time across all phases.
Definition BuildProfile.hpp:43
size_t deferredPendingRValueCount
Definition BuildProfile.hpp:22
double taskMinSeconds
Definition BuildProfile.hpp:25
double taskMeanSeconds
Definition BuildProfile.hpp:27
size_t deferredBlockCount
Definition BuildProfile.hpp:21
double phase2_parallelSeconds
Definition BuildProfile.hpp:11
double taskMaxSeconds
Definition BuildProfile.hpp:26
double phase4_rvalueSeconds
Definition BuildProfile.hpp:13
double taskMedianSeconds
Definition BuildProfile.hpp:28
unsigned numThreads
Definition BuildProfile.hpp:40
double phase1_collectSeconds
Definition BuildProfile.hpp:10
double drain_pendingRValuesSeconds
Definition BuildProfile.hpp:17
double drain_mergesSeconds
Definition BuildProfile.hpp:18
double taskCpuTotalSeconds
Definition BuildProfile.hpp:38
double phase3_drainSeconds
Definition BuildProfile.hpp:12
double taskTotalSeconds
Definition BuildProfile.hpp:33