##=== 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;

@LatexColumns = (2, 3, 4, 5, 6, 7);

my $OLDEN     = 'MultiSource/Benchmarks/Olden';
my $FREEBENCH = 'MultiSource/Benchmarks/FreeBench';
my $PTRDIST   = 'MultiSource/Benchmarks/Ptrdist';

@LatexRowMapOrder = (
                     "$OLDEN/bh/bh"           => 'bh',
                     "$OLDEN/bisort/bisort"   => 'bisort',
                     "$OLDEN/em3d/em3d"       => 'em3d',
                     "$OLDEN/health/health"   => 'health',
                     "$OLDEN/mst/mst"         => 'mst',
                     "$OLDEN/perimeter/perimeter" => 'perimeter',
                     "$OLDEN/power/power"     => 'power',
                     "$OLDEN/treeadd/treeadd" => 'treeadd',
                     "$OLDEN/tsp/tsp"         => 'tsp',
                     "$OLDEN/voronoi/voronoi" => 'voronoi',
                     '-' => '-',
                     "$FREEBENCH/analyzer/analyzer"     => 'analyzer',
#                     "$FREEBENCH/distray/distray"       => 'distray',
#                     "$FREEBENCH/fourinarow/fourinarow" => 'fourinarow',
#                     "$FREEBENCH/mason/mason"           => 'mason',
                     "$FREEBENCH/neural/neural"         => 'neural',
                     "$FREEBENCH/pcompress2/pcompress2" => 'pcompress2',
                     "$FREEBENCH/pifft/pifft"           => 'pifft',
                     '-' => '-',
                     "$PTRDIST/anagram/anagram"       => 'anagram',
                     "$PTRDIST/bc/bc"                 => 'bc',
                     "$PTRDIST/ft/ft"                 => 'ft',
                     "$PTRDIST/ks/ks"                 => 'ks',
                     "$PTRDIST/yacr2/yacr2"           => 'yacr2',
                  );

sub Ratio {
  my ($Cols, $Col) = @_;
  if ($Cols->[$Col-2] ne "*" and $Cols->[$Col-1] ne "*" and
      $Cols->[$Col-2] != "0") {
    return sprintf "%1.3f", $Cols->[$Col-1]/$Cols->[$Col-2];
  } else {
    return "n/a";
  }
}

# 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'],
 [],
# Times
 ["L1Miss",   'CBE-L1-Cache-Misses: ([0-9]+)'],
 ["PAL1Miss",   'CBE-PA-L1-Cache-Misses: ([0-9]+)'],
 ["PAL1Ratio", \&Ratio],
 ["ALLPAL1Miss", 'CBE-ALLPA-L1-Cache-Misses: ([0-9]+)'],
 [],
 ["L2Miss",   'CBE-L2-Cache-Misses: ([.0-9]+)'],
 ["PAL2Miss",   'CBE-PA-L2-Cache-Misses: ([.0-9]+)'],
 ["PAL2Ratio", \&Ratio],
 ["ALLPAL2Miss", 'CBE-ALLPA-L2-Cache-Misses: ([0-9]+)'],
 []
);

