blob: 39e37bb2afc024bb0e89efab6f4363cb7114a0a7 [file] [log] [blame]
##=== TEST.dsgraph.report - Report description for dsgraph -----*- perl -*-===##
#
# This file defines a report to be generated for the dsgraph test.
#
##===----------------------------------------------------------------------===##
$SortNumeric = 1; # Sort numerically, not textually.
$TrimAllDirectories = 1; # Trim off benchmark directories.
$SortCol = 2; # Sort by #MemInstrs
$SortReverse = 1; # Sort in descending order
# Helper function
sub Ratio {
my ($Cols, $Col) = @_;
if ($Cols->[$Col-2] ne "*" and
$Cols->[$Col-2] != "0") {
return sprintf("%4.1f%%", 100*($Cols->[$Col-1]/$Cols->[$Col-2]));
} else {
return "n/a";
}
}
sub TypeSafeRatio {
my ($Cols, $Col) = @_;
my $TS = $Cols->[$Col-2];
my $NTS = $Cols->[$Col-1];
$TS = 0 if ($TS eq "*");
$NTS = 0 if ($NTS eq "*");
if ($TS + $NTS != 0) {
return sprintf("%4.1f%%", 100*$TS/($TS+$NTS+0.0));
} else {
return "n/a";
}
}
sub FormatSize {
my $Size = shift;
if ($Size > 10*1024*1024) {
return (int $Size*10 / (1024*1024))/10 . "MB";
} elsif ($Size > 10*1024) {
return (int $Size / 1024);
} else {
return $Size . "B";
}
}
sub NoStar {
return "0" if ($_[0] eq '*');
return $_[0];
}
sub NoCallNodes {
$_[0] =~ m/([0-9]+)\+/;
return $1;
}
# For latex output, limit benchmarks and rename as appropriate
@LatexRowMapOrder = (
'-' => '-',
'181.mcf' => '181.mcf',
'256.bzip2' => '256.bzip2',
'164.gzip' => '164.gzip',
'175.vpr' => '175.vpr',
'197.parser' => '197.parser',
'186.crafty' => '186.crafty',
'300.twolf' => '300.twolf',
'255.vortex' => '255.vortex',
'254.gap' => '254.gap',
'252.eon' => '252.eon',
'253.perlbmk' => '253.perlbmk',
'176.gcc' => '176.gcc',
'-' => '-',
'179.art' => '179.art',
'183.equake' => '183.equake',
'171.swim' => '171.swim',
'172.mgrid' => '172.mgrid',
'168.wupwise' => '168.wupwise',
'173.applu' => '173.applu',
'188.ammp' => '188.ammp',
'177.mesa' => '177.mesa',
'-' => '-',
'129.compress' => '129.compress',
'130.li' => '130.li',
'124.m88ksim' => '124.m88ksim',
'132.ijpeg' => '132.ijpeg',
'099.go' => '099.go',
'134.perl' => '134.perl',
'147.vortex' => '147.vortex',
'126.gcc' => '126.gcc',
'-' => '-',
'102.swim' => '102.swim',
'101.tomcatv' => '101.tomcatv',
'107.mgrid' => '107.mgrid',
'145.fpppp' => '145.fpppp',
'104.hydro2d' => '104.hydro2d',
'110.applu' => '110.applu',
'103.su2cor' => '103.su2cor',
'146.wave5' => '146.wave5',
'-' => '-',
'fpgrowth' => 'fpgrowth',
'bsim' => 'boxed-sim',
'namd' => 'NAMD',
'povray' => 'povray31',
);
@LxxatexColumns = (1, 2, 19, # LOC, #MemInstrs, MaxSCC
15,16, # Total/Collapsed nodes
17, 18); # Max Size, GG Size
@LatexColumns = (2, 21, 22, 23); # Type safety numbers
# Specify how to format columns nicely for printing...
%LatexColumnFormat = (
# 11 => \&FormatSize,
# 12 => \&FormatSize,
16 => \&NoStar,
15 => \&NoCallNodes,
18 => \&NoCallNodes
);
@Graphs = (["scatter", "timeVmem.txt", 27, 7],
["scatter", "timeVloc.txt", 1, 7]);
# 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.
my $USERSYSTTIME = '([0-9.]+)[ 0-9.]+\([^)]+\)[ 0-9.]+\([^)]+\) +';
(
# Name
["Name:" , '\'([^\']+)\' Program'],
["LOC:" , 'LOC: *([0-9]+)'],
["MemInsts", '([0-9]+).*Number of memory instructions'],
[],
# Misc stuff
["NumNodes", "TOTALNODES: *([0-9]+)"],
["NumFold", "FOLDEDNODES: *([0-9]+)"],
[],
["TypeSafeO", "ACCESSES TYPED_O: *([0-9]+)"],
["NonTypeO", "ACCESSES UNTYPED_O: *([0-9]+)"],
["TSO%" , sub { return TypeSafeRatio(@_); }],
[],
["TypeSafe", "ACCESSES TYPED: *([0-9]+)"],
["NonType", "ACCESSES UNTYPED: *([0-9]+)"],
["TS%" , sub { return TypeSafeRatio(@_); }],
[],
["Ign", "IGN: *([0-9]+)"],
["GEP-Ign", "GEPI: *([0-9]+)"],
["Type0", "ACCESSES TYPED0: *([0-9]+)"],
["Type1", "ACCESSES TYPED1: *([0-9]+)"],
["Type2", "ACCESSES TYPED2: *([0-9]+)"],
["Type3", "ACCESSES TYPED3: *([0-9]+)"],
["Type4", "ACCESSES TYPED4: *([0-9]+)"],
["I", "ACCESSES I: *([0-9]+)"],
["E", "ACCESSES E: *([0-9]+)"],
["F", "ACCESSES F: *([0-9]+)"],
["U", "ACCESSES U: *([0-9]+)"],
["I2P", "ACCESSES I2P: *([0-9]+)"],
# Nodes Folded
[],
["GEPFUNC", "GEP_CALLS: *([0-9]+)"],
["ARGSMPL", "ARG_SMPL: *([0-9]+)"],
["FUNCSPEC", "CLONED_FUNCSPEC: *([0-9]+)"],
["INDCLONE", "CLONED_INDCLONE: *([0-9]+)"],
["I2PB", "I2PB: *([0-9]+)"],
["I2PS", "I2PS: *([0-9]+)"],
["EV", "EV: *([0-9]+)"],
["AL", "ALLOC: *([0-9]+)"],
["DE", "DEALLOC: *([0-9]+)"],
["CAST", "CAST: *([0-9]+)"],
["Calls", "INDCALLS: *([0-9]+)"],
[],
["DTotal", "DTOTAL: *([0-9]+)"],
["DSafe", "DSAFE: *([0-9]+)"],
["DTS%" , sub { return Ratio(@_); }],
[],
["DTotalO", "DTOTALO: *([0-9]+)"],
["DSafeO", "DSAFEO: *([0-9]+)"],
["DTS%" , sub { return Ratio(@_); }],
#[],
#["LoadChk", "LCHK: *([0-9]+)"],
#["StoreChk", "SCHK: *([0-9]+)"],
[],
["OptTime", "OPT-RUN_TIME: program *([.0-9]+)"],
["TcTime", "TC-RUN_TIME: program *([.0-9]+)"],
["TcdTime", "TCD-RUN_TIME: program *([.0-9]+)"],
["TcoTime", "TCO-RUN_TIME: program *([.0-9]+)"],
["TcooTime", "TCOO-RUN_TIME: program *([.0-9]+)"],
["Tcoo1Time", "TCOO1-RUN_TIME: program *([.0-9]+)"],
);