##=== TEST.poolalloc.report - Report description for poolalloc -*- perl -*-===## # # This file defines a report to be generated for the pool allocator tests. # ##===----------------------------------------------------------------------===## # 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'; @LatexRowMapOrder = ( '164.gzip/164.gzip' => '164.gzip', '175.vpr/175.vpr' => '175.vpr', '181.mcf/181.mcf' => '181.mcf', '186.crafty/186.crafty' => '186.crafty', '197.parser/197.parser' => '197.parser', '197.parser.hacked/197.parser.hacked' => '197.parser(b)', '255.vortex/255.vortex' => '255.vortex', '256.bzip2/256.bzip2' => '256.bzip2', '300.twolf/300.twolf' => '300.twolf', '-' => '-', "anagram/anagram" => 'anagram', "bc/bc" => 'bc', "ft/ft" => 'ft', "ks/ks" => 'ks', "yacr2/yacr2" => 'yacr2', '-' => '-', "analyzer" => 'analyzer', "neural" => 'neural', "pcompress2" => 'pcompress2', "piff2" => 'piff2', '-' => '-', "bh/bh" => 'bh', "bisort/bisort" => 'bisort', "em3d/em3d" => 'em3d', "health/health" => 'health', "mst/mst" => 'mst', "perimeter/perimeter" => 'perimeter', "power/power" => 'power', "treeadd/treeadd" => 'treeadd', "tsp/tsp" => 'tsp', '-' => '-', "llu" => 'llu-bench', ); my $USERSYSTTIME = '([0-9.]+)[ 0-9.]+\([^)]+\)[ 0-9.]+\([^)]+\) +'; # 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]+)'], ["PAC Time","${USERSYSTTIME}Pool allocate"], [], # Times ["GCC", 'GCC-RUN-TIME: program\s*([.0-9m:]+)', \&FormatTime], ["NonPATime", 'RUN-TIME-NORMAL: program\s*([.0-9m:]+)', \&FormatTime], [], ["OnlyOHTime", 'RUN-TIME-ONLYOVERHEAD: program\s*([.0-9m:]+)', \&FormatTime], ["OO run%", \&RuntimePercent], [], ["ReplTime", 'RUN-TIME-MALLOCREPL: program\s*([.0-9m:]+)', \&FormatTime], ["MR run%", \&RuntimePercent], [], ["PA Time", 'RUN-TIME-POOLALLOC: program\s*([.0-9m:]+)', \&FormatTime], ["PA run%", \&RuntimePercent], [], ["Basepa", 'RUN-TIME-BASEPA: program\s*([.0-9m:]+)', \&FormatTime], ["Base run%", \&RuntimePercent], [], ["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'], ["UnresolvedCalls",'([0-9]+).*Number of calls that could not be resolved'], #["Nonprofit", '([0-9]+).*Number of DSNodes not profitable'], [] );