forked from github/verilator
b1b5b5dfe2
The --prof-threads option has been split into two independent options: 1. --prof-exec, for collecting verilator_gantt and other execution related profiling data, and 2. --prof-pgo, for collecting data needed for PGO The implementation of execution profiling is extricated from VlThreadPool and is now a separate class VlExecutionProfiler. This means --prof-exec can now be used for single-threaded models (though it does not measure a lot of things just yet). For consistency VerilatedProfiler is renamed VlPgoProfiler. Both VlExecutionProfiler and VlPgoProfiler are in verilated_profiler.{h/cpp}, but can be used completely independently. Also re-worked the execution profile format so it now only emits events without holding onto any temporaries. This is in preparation for some future optimizations that would be hindered by the introduction of function locals via AstText. Also removed the Barrier event. Clearing the profile buffers is not notably more expensive as the profiling records are trivially destructible.
45 lines
1.8 KiB
Plaintext
45 lines
1.8 KiB
Plaintext
VLPROFVERSION 2.0
|
|
VLPROF arg +verilator+prof+exec+start+2
|
|
VLPROF arg +verilator+prof+exec+window+2
|
|
VLPROF stat threads 2
|
|
VLPROF stat yields 0
|
|
VLPROFTHREAD 0
|
|
VLPROFEXEC EVAL_BEGIN 595
|
|
VLPROFEXEC EVAL_LOOP_BEGIN 945
|
|
VLPROFEXEC MTASK_BEGIN 2695 id 6 predictStart 0 cpu 19
|
|
VLPROFEXEC MTASK_END 2905 id 6 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 9695 id 10 predictStart 196 cpu 19
|
|
VLPROFEXEC MTASK_END 9870 id 10 predictCost 30
|
|
VLPROFEXEC EVAL_LOOP_END 12180
|
|
VLPROFEXEC EVAL_END 12250
|
|
VLPROFEXEC EVAL_BEGIN 13720
|
|
VLPROFEXEC EVAL_LOOP_BEGIN 14000
|
|
VLPROFEXEC MTASK_BEGIN 15610 id 6 predictStart 0 cpu 19
|
|
VLPROFEXEC MTASK_END 15820 id 6 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 21700 id 10 predictStart 196 cpu 19
|
|
VLPROFEXEC MTASK_END 21875 id 10 predictCost 30
|
|
VLPROFEXEC EVAL_LOOP_END 22085
|
|
VLPROFEXEC EVAL_END 22330
|
|
VLPROFTHREAD 1
|
|
VLPROFEXEC MTASK_BEGIN 5495 id 5 predictStart 0 cpu 10
|
|
VLPROFEXEC MTASK_END 6090 id 5 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 6300 id 7 predictStart 30 cpu 10
|
|
VLPROFEXEC MTASK_END 6895 id 7 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 7490 id 8 predictStart 60 cpu 10
|
|
VLPROFEXEC MTASK_END 8540 id 8 predictCost 107
|
|
VLPROFEXEC MTASK_BEGIN 9135 id 9 predictStart 167 cpu 10
|
|
VLPROFEXEC MTASK_END 9730 id 9 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 10255 id 11 predictStart 197 cpu 10
|
|
VLPROFEXEC MTASK_END 11060 id 11 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 18375 id 5 predictStart 0 cpu 10
|
|
VLPROFEXEC MTASK_END 18970 id 5 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 19145 id 7 predictStart 30 cpu 10
|
|
VLPROFEXEC MTASK_END 19320 id 7 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 19670 id 8 predictStart 60 cpu 10
|
|
VLPROFEXEC MTASK_END 19810 id 8 predictCost 107
|
|
VLPROFEXEC MTASK_BEGIN 20650 id 9 predictStart 167 cpu 10
|
|
VLPROFEXEC MTASK_END 20720 id 9 predictCost 30
|
|
VLPROFEXEC MTASK_BEGIN 21140 id 11 predictStart 197 cpu 10
|
|
VLPROFEXEC MTASK_END 21245 id 11 predictCost 30
|
|
VLPROF stat ticks 23415
|