blob: cc3593b89ef1e282a873b1946defd00c544e5ef2 [file] [log] [blame]
##=== TEST.dsgraph.report - Report description for dsgraph -----*- perl -*-===##
#
# This file defines a report to be generated for the dsgraph test.
#
##===----------------------------------------------------------------------===##
# Sort numerically, not textually...
$SortNumeric = 1;
# Helper function
sub Ratio {
my ($Cols, $Col) = @_;
if ($Cols->[$Col-2] ne "*" and
$Cols->[$Col-2] != "0") {
return $Cols->[$Col-1]/$Cols->[$Col-2];
} 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;
}
# Sort by total analyze time
$SortCol = 7;
# Sort in descending order
$SortReverse = 1;
# For latex output, limit benchmarks and rename as appropriate
@LatexRowMapOrder = (
'MultiSource/Olden/treeadd/treeadd' => 'Olden-treeadd',
'MultiSource/Olden/bisort/bisort' => 'Olden-bisort',
'MultiSource/Olden/mst/mst' => 'Olden-mst',
'MultiSource/Olden/perimeter/perimeter' => 'Olden-perimeter',
'MultiSource/Olden/health/health' => 'Olden-health',
'MultiSource/Olden/tsp/tsp' => 'Olden-tsp',
'MultiSource/Olden/power/power' => 'Olden-power',
'MultiSource/Olden/em3d/em3d' => 'Olden-em3d',
'MultiSource/Olden/voronoi/voronoi' => 'Olden-voronoi',
'MultiSource/Olden/bh/bh' => 'Olden-bh',
'-' => '-',
'MultiSource/Ptrdist/anagram/anagram' => 'ptrdist-anagram',
'MultiSource/Ptrdist/ks/ks' => 'ptrdist-ks',
'MultiSource/Ptrdist/ft/ft' => 'ptrdist-ft',
'MultiSource/Ptrdist/yacr2/yacr2' => 'ptrdist-yacr2',
'MultiSource/Ptrdist/bc/bc' => 'ptrdist-bc',
'-' => '-',
'External/SPEC/CFP2000/179.art/179.art' => '179.art',
'External/SPEC/CFP2000/183.equake/183.equake' => '183.equake',
'External/SPEC/CINT2000/181.mcf/181.mcf' => '181.mcf',
'External/SPEC/CINT2000/256.bzip2/256.bzip2' => '256.bzip2',
'External/SPEC/CINT2000/164.gzip/164.gzip' => '164.gzip',
'External/SPEC/CINT2000/197.parser/197.parser' => '197.parser',
'External/SPEC/CFP2000/188.ammp/188.ammp' => '188.ammp',
'External/SPEC/CINT2000/175.vpr/175.vpr' => '175.vpr',
'External/SPEC/CINT2000/300.twolf/300.twolf' => '300.twolf',
'External/SPEC/CINT2000/186.crafty/186.crafty' => '186.crafty',
'External/SPEC/CINT2000/255.vortex/255.vortex' => '255.vortex',
'External/SPEC/CINT2000/254.gap/254.gap' => '254.gap',
'-' => '-',
'MultiSource/sgefa/sgefa' => 'sgefa',
'MultiSource/sim/sim' => 'sim',
'MultiSource/Burg/burg' => 'burg',
'MultiSource/gnuchess/gnuchess' => 'gnuchess',
'MultiSource/larn/larn' => 'larn',
'MultiSource/flex/flex' => 'flex',
'MultiSource/moria/moria' => 'moria',
'MultiSource/povray31/povray31' => 'povray31'
);
@LatexColumns = (1, 27, 19, # LOC, #MemInstrs, MaxSCC
4, 5, 6, 7, # Execution times
11, # Memory BU
12, # Memory TD
16, 17, # Total, Max Nodes
15); # NumFolded
# Specify how to format columns nicely for printing...
%LatexColumnFormat = (
11 => \&FormatSize,
12 => \&FormatSize,
15 => \&NoStar,
16 => \&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.
(
# Name
["Name:" , '\'([^\']+)\' Program'],
["LOC:" , 'LOC: *([0-9]+)'],
[],
# Times
["Anlyz:", '([0-9.]+) \([^)]+\)[ 0-9]+TOTAL'],
["LocTm:", '([0-9.]+) \([^)]+\)[ 0-9]+Local'],
["BUTim:", '([0-9.]+) \([^)]+\)[ 0-9]+Bottom'],
["TDTim:", '([0-9.]+) \([^)]+\)[ 0-9]+Top'],
["SumTm:", sub { return SumCols(@_, 3); }],
["SteTm:", '([0-9.]+) \([^)]+\)[ 0-9]+Steensgaard'],
[],
# Sizes
["LcSize:" , '([0-9]+) Local'],
["BUSize:" , '([0-9]+) Bottom-up'],
["TDSize:" , '([0-9]+) Top-down'],
["BUTDSz:" , sub { return SumCols(@_, 2); }],
[],
# Misc stuff
["NumFold" , '([0-9]+).*Number of folded nodes '],
["NumNodes", 'Graphs contain \\[([0-9+]+)\\] nodes total'],
["MaxSz" , '([0-9]+).*Maximum graph size'],
["GlobGr" , '\\.GlobalsGraph\\.dot\'... \\[([0-9+]+)\\]'],
["MaxSCC" , '([0-9]+).*Maximum SCC Size in Call Graph'],
[],
["Loads" , '([0-9]+).*Number of Load insts'],
["Store" , '([0-9]+).*Number of Store insts'],
["Calls" , '([0-9]+).*Number of Call insts'],
["Allca" , '([0-9]+).*Number of Alloca insts'],
["Mallc" , '([0-9]+).*Number of Malloc insts'],
["GEP" , '([0-9]+).*Number of GetElementPtr insts'],
["Sum" , sub { return SumCols(@_, 6); }],
[],
["num/ind" , '([0-9]+).*number of indirect call sites'],
["indcallee",'([0-9]+).*number of callee functions at'],
["ratio" , \&Ratio], # indcallee / num/ind
[]
);