##=== 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-SAFECODE: user\s*([.0-9m:]+)', \&FormatTime], [] );