##=== TEST.nightly.report - Report description for nightly -----*- perl -*-===##
#
# This file defines a report to be generated for the nightly tests.
#
##===----------------------------------------------------------------------===##

# Sort by program name
$SortCol = 0;

my $WallTimeRE = "[A-Za-z0-9.: ]+\\(([0-9.]+) wall clock";

# FormatTime - Convert a time from 1m23.45 into 83.45
sub FormatTime {
  my $Time = shift;
  if ($Time =~ m/([0-9]+)[m:]([0-9.]+)/) {
    $Time = sprintf("%7.3f", $1*60.0+$2);
  }
  return $Time;
}

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

sub GCCCBERatio {
  my ($Cols, $Col) = @_;
  if ($Cols->[$Col-4] ne "*" and $Cols->[$Col-5] ne "*" and
      $Cols->[$Col-4] != "0") {
    return sprintf("%3.2f", $Cols->[$Col-5]/$Cols->[$Col-4]);
  } 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
# separators, and closures may be put in for custom processing.
(
# Name
 ["Program"  , '\'([^\']+)\' Program'],
 [],
# Times
 ["GCCAS"    , "TEST-RESULT-compile: $WallTimeRE"],
 ["Bytecode" , 'TEST-RESULT-compile: *([0-9]+)'],
 ["Instrs"   , 'TEST-RESULT-compile: *([0-9]+).*Number of inst'],
 ["LLC<br>compile" , "TEST-RESULT-llc: $WallTimeRE"],
 ["JIT<br>codegen" , "TEST-RESULT-jit-comptime: $WallTimeRE"],
 ["Machine<br>code", 'TEST-RESULT-jit-machcode: *([0-9]+).*bytes of machine code'],
 [],
 ["GCC"      , 'TEST-RESULT-nat-time: real\s*([.0-9m:]+)', \&FormatTime],
 ["CBE"      , 'TEST-RESULT-cbe-time: real\s*([.0-9m:]+)', \&FormatTime],
 ["LLC"      , 'TEST-RESULT-llc-time: real\s*([.0-9m:]+)', \&FormatTime],
 ["JIT"      , 'TEST-RESULT-jit-time: real\s*([.0-9m:]+)', \&FormatTime],
 ["GCC/LLC"  , \&GCCLLCRatio],
 ["GCC/CBE"  , \&GCCCBERatio]
);
