Werner's Miscellanea
Sign in or create your account | Project List | Help
Werner's Miscellanea Commit Details
Date: | 2011-09-22 07:07:42 (12 years 6 months ago) |
---|---|
Author: | Werner Almesberger |
Commit: | c5df76a7b988ca7337c2506ecf6ecdaf4314df85 |
Message: | m1/perf/: calculate effective register allocation and how it in
comparison table |
Files: |
m1/perf/eval.pl (3 diffs) m1/perf/tabulate (2 diffs) |
Change Details
m1/perf/eval.pl | ||
---|---|---|
3 | 3 | |
4 | 4 | sub flush |
5 | 5 | { |
6 | if ($nregs) { | |
7 | print 0+keys %reg, "/", (sort { $b cmp $a } keys %reg)[0], | |
8 | "\n"; | |
9 | return; | |
10 | } | |
6 | 11 | for (sort keys %use) { |
7 | 12 | print "$_ = ".$reg{$_}."\n"; |
8 | 13 | } |
... | ... | |
10 | 15 | } |
11 | 16 | |
12 | 17 | |
18 | if ($ARGV[0] eq "-r") { | |
19 | shift @ARGV; | |
20 | $nregs = 1; | |
21 | } | |
22 | ||
23 | ||
13 | 24 | while (<>) { |
14 | 25 | if (/FPVM fragment:/) { |
15 | 26 | &flush if $i; |
... | ... | |
35 | 46 | $e = $1 if /E=(\d+)>/; |
36 | 47 | die "($i) $_" if $c != $i; |
37 | 48 | |
49 | $reg{$a} = 1 if $nregs && defined $a; | |
50 | $reg{$b} = 1 if $nregs && defined $b; | |
51 | ||
38 | 52 | $a = $reg{$a} if defined $reg{$a}; |
39 | 53 | $b = $reg{$b} if defined $reg{$b}; |
40 | 54 | |
41 | 55 | if ($op eq "IF<R2>") { |
42 | 56 | $expr = "(IF ".$reg{"R002"}." $a $b)"; |
57 | $reg{"R002"} = 1 if $nregs; | |
43 | 58 | } elsif ($op eq "VECTOUT") { |
44 | 59 | $res = "A = $a\nB = $b\n"; |
45 | 60 | } elsif (defined $b) { |
m1/perf/tabulate | ||
---|---|---|
24 | 24 | |
25 | 25 | regs() |
26 | 26 | { |
27 | sed '/^regs: 0\//s///p;d' <data/$1/out/$2 | tail -n 1 | |
27 | ./eval.pl -r data/$1/out/$2 | sed '1d;s|/.*||' | |
28 | # sed '/^regs: 0\//s///p;d' <data/$1/out/$2 | tail -n 1 | |
28 | 29 | } |
29 | 30 | |
30 | 31 | |
... | ... | |
44 | 45 | } |
45 | 46 | |
46 | 47 | |
47 | echo "Original New sched (no opt) New sched (LCPF) Equiv Name" | |
48 | echo "Time Size Eff Time Size Eff Regs Time Size Eff Regs" | |
48 | echo "Original New sched (no opt) New sched (LCPF) Equiv Name" | |
49 | echo "Time Size Eff Regs Time Size Eff Regs Time Size Eff Regs" | |
49 | 50 | |
50 | 51 | for n in `ls -1 data/ref/out`; do |
51 | 52 | ref=`sum ref $n` |
52 | 53 | new=`sum new $n` |
53 | 54 | opt=`sum opt $n` |
54 | printf "%5.1f %4d%3d%% %5.1f %4d%3d%% %4d %5.1f %4d%3d%% %4d %s " \ | |
55 | `time ref $n` `size ref $n` `eff ref $n` \ | |
55 | printf "%5.1f %4d%3d%% %4d %5.1f %4d%3d%% %4d %5.1f %4d%3d%% %4d %s " \ | |
56 | `time ref $n` `size ref $n` `eff ref $n` `regs ref $n` \ | |
56 | 57 | `time new $n` `size new $n` `eff new $n` `regs new $n` \ |
57 | 58 | `time opt $n` `size opt $n` `eff opt $n` `regs opt $n` \ |
58 | 59 | `eq $ref $new`/`eq $ref $opt`/`eq $new $opt` |
Branches:
master