mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-08 20:21:25 +00:00
initial import
This commit is contained in:
commit
7764d0ba1d
481 changed files with 54634 additions and 0 deletions
55
tests/tools/profiler.pl
Executable file
55
tests/tools/profiler.pl
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/perl
|
||||
# parse 'yosys -t' logfile and find slow passes
|
||||
|
||||
my $max_depth = 0;
|
||||
my %last_line_by_depth;
|
||||
my %last_time_by_depth;
|
||||
|
||||
my @lines_text;
|
||||
my @lines_depth;
|
||||
my @lines_time;
|
||||
|
||||
while (<>)
|
||||
{
|
||||
chomp;
|
||||
next unless /^\[([0-9.]+)\] (([0-9]+\.)+)/;
|
||||
my ($this_time, $this_id, $this_header) = ($1, $2, $4);
|
||||
|
||||
push @lines_text, $_;
|
||||
push @lines_depth, 0;
|
||||
push @lines_time, 0;
|
||||
|
||||
my $depth = $this_id;
|
||||
$depth =~ s/[^.]//g;
|
||||
$depth = length $depth;
|
||||
$max_depth = $depth if $depth > $max_depth;
|
||||
|
||||
for (my $i = $depth; $i <= $max_depth; $i++) {
|
||||
next unless exists $last_time_by_depth{$i};
|
||||
$lines_time[$last_line_by_depth{$i}] = $this_time-$last_time_by_depth{$i};
|
||||
delete $last_time_by_depth{$i};
|
||||
delete $last_header_by_depth{$i};
|
||||
}
|
||||
|
||||
$last_time_by_depth{$depth} = $this_time;
|
||||
$last_line_by_depth{$depth} = $#lines_text;
|
||||
$lines_depth[$#lines_text] = $depth;
|
||||
}
|
||||
|
||||
for (my $depth = 1; $depth <= $max_depth; $depth++) {
|
||||
printf "\nSlow passes on recursion depth %d:\n", $depth;
|
||||
my @lines;
|
||||
for (my $i = 0; $i <= $#lines_text; $i++) {
|
||||
next if $lines_depth[$i] != $depth or $lines_time[$i] < 1.0;
|
||||
push @lines, sprintf("%3d %08.2f %s\n", $lines_depth[$i], $lines_time[$i], $lines_text[$i]);
|
||||
}
|
||||
for my $line (sort {$b cmp $a} @lines) {
|
||||
print $line;
|
||||
}
|
||||
}
|
||||
|
||||
printf "\nFull journal of headers:\n";
|
||||
for (my $i = 0; $i <= $#lines_text; $i++) {
|
||||
printf "%3d %08.2f %s\n", $lines_depth[$i], $lines_time[$i], $lines_text[$i];
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue