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

# Sort by total execution time
$SortCol = 2;

# Sort in descending order
$SortReverse = 1;

# 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
 ["Total"  , 'real ([0-9.]+)'],
 ["CodeGen", 'Total Execution Time: ([0-9.]+)'],
 ["InstSel", '([0-9.]+) \([^)]+\)[ 0-9A-Za-z]+Instruction Selection'],
 ["LiveVar", '([0-9.]+) \([^)]+\)[ 0-9A-Za-z]+Live Variable'],
 ["RA"     , '([0-9.]+) \([^)]+\)[ 0-9A-Za-z]+Register Allocator'],
 ["FPStack", '([0-9.]+) \([^)]+\)[ 0-9]+X86 FP Stackifier'],
 ["Peep"   , '([0-9.]+) \([^)]+\)[- 0-9]+X86 Peephole Optimizer'],
 [],
# Sizes
 ["MCSize"  , '([0-9]+).*Number of bytes of machine code compiled'],
 ["#MCInsts", '([0-9]+).*Number of machine instructions emitted'],
 ["#Glob"   , '([0-9]+).*Number of bytes of global vars'],
 [],
# Number of transformations
 ["#spill" , '([0-9]+).*Number of registers spilled'],
 ["#reload", '([0-9]+).*Number of registers reloaded'],
 ["#fp"    , '([0-9]+).*Number of floating point instructions'],
 ["#fxch"  , '([0-9]+).*Number of fxch instructions inserted'],
 []
);
