blob: 84daa95667e4f25752f17bd1a0169593c82e01d5 [file] [log] [blame]
##=== TEST.debug.report - Report description for SAFECode ----*- perl -*---===##
#
# This file defines a report to be generated for the debugging tool version of
# SAFECode.
#
##===----------------------------------------------------------------------===##
# Sort by program name
$SortCol = 0;
$TrimRepeatedPrefix = 1;
# FormatTime - Convert a time from 1m23.45 into 83.45
sub FormatTime {
my $Time = shift;
if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
return sprintf("%7.3f", $1*60.0+$2);
}
return sprintf("%6.2f", $Time);
}
sub RuntimePercent {
my ($Cols, $Col) = @_;
if ($Cols->[$Col-1] ne "*" and $Cols->[4] ne "*" and
$Cols->[4] != "0") {
return sprintf "%7.2f", 100*$Cols->[$Col-1]/$Cols->[4];
} else {
return "n/a";
}
}
@LatexColumns = (1, 5, 8, 12, 9, 13, 14, 15, 2, 16);
my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
my $PTRDIST = 'MultiSource/Benchmarks/Ptrdist';
# These are the columns for the report. The first entry is the header for the
# column, the second is the regex to use to match the value. Empty list create
# seperators, and closures may be put in for custom processing.
(
# Name
["Name:" , '\'([^\']+)\' Program'],
["LOC" , 'LOC:\s*([0-9]+)'],
[],
# Times
["GCC", 'GCC-RUN-TIME: user\s*([.0-9m:]+)', \&FormatTime],
[],
["SC", 'CBE-RUN-TIME-NORMAL: user\s*([.0-9m:]+)', \&FormatTime],
[],
["SC + Multi-PA", 'CBE-RUN-TIME-SAFECODE: user\s*([.0-9m:]+)', \&FormatTime],
[],
["SC + BB", 'CBE-RUN-TIME-BB: user\s*([.0-9m:]+)', \&FormatTime],
# ["NumPools", '([0-9]+).*Number of pools allocated'],
# ["Typesafe", '([0-9]+).*Number of typesafe pools'],
# ["BumpPtr", '([0-9]+).*Number of bump pointer pools'],
# ["PFE", '([0-9]+).*Number of poolfree.s elided'],
# ["NumArgs", '([0-9]+).*Number of function arguments added'],
# ["MaxArgs", '([0-9]+).*Maximum function arguments added'],
# ["Nonprofit", '([0-9]+).*Number of DSNodes not profitable'],
[]
);