[llvm-commits] [test-suite] r51495 - in /test-suite/trunk: TEST.nightly2.Makefile TEST.nightly2.report
Devang Patel
dpatel at apple.com
Fri May 23 12:07:35 PDT 2008
Author: dpatel
Date: Fri May 23 14:07:35 2008
New Revision: 51495
URL: http://llvm.org/viewvc/llvm-project?rev=51495&view=rev
Log:
Add support for opt-beta runs without disturbing current TEST=nightly setup.
Added:
test-suite/trunk/TEST.nightly2.Makefile
test-suite/trunk/TEST.nightly2.report (with props)
Added: test-suite/trunk/TEST.nightly2.Makefile
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/TEST.nightly2.Makefile?rev=51495&view=auto
==============================================================================
--- test-suite/trunk/TEST.nightly2.Makefile (added)
+++ test-suite/trunk/TEST.nightly2.Makefile Fri May 23 14:07:35 2008
@@ -0,0 +1,153 @@
+##===- TEST.nightly.Makefile ------------------------------*- Makefile -*--===##
+#
+# This test is used in conjunction with the llvm/utils/NightlyTest* stuff to
+# generate information about program status for the nightly report.
+#
+##===----------------------------------------------------------------------===##
+
+CURDIR := $(shell cd .; pwd)
+PROGDIR := $(PROJ_SRC_ROOT)
+RELDIR := $(subst $(PROGDIR),,$(CURDIR))
+
+REPORTS_TO_GEN := compile nat
+ifndef DISABLE_LLC
+REPORTS_TO_GEN += llc
+endif
+ifndef DISABLE_JIT
+REPORTS_TO_GEN += jit
+endif
+ifndef DISABLE_CBE
+REPORTS_TO_GEN += cbe
+endif
+ifdef ENABLE_LLCBETA
+REPORTS_TO_GEN += llc-beta
+endif
+ifdef ENABLE_OPTBETA
+REPORTS_TO_GEN += opt-beta
+endif
+REPORTS_SUFFIX := $(addsuffix .report.txt, $(REPORTS_TO_GEN))
+
+
+TIMEOPT = -time-passes -stats -info-output-file=$(CURDIR)/$@.info
+EXTRA_LLI_OPTS = $(TIMEOPT)
+
+# Compilation tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.compile.report.txt): \
+Output/%.nightly.compile.report.txt: Output/%.llvm.bc $(LOPT)
+ @echo > $@
+ @-if test -f Output/$*.linked.bc.info; then \
+ echo "TEST-PASS: compile $(RELDIR)/$*" >> $@;\
+ printf "TEST-RESULT-compile: " >> $@;\
+ grep "Total Execution Time" Output/$*.linked.bc.info >> $@;\
+ echo >> $@;\
+ printf "TEST-RESULT-compile: " >> $@;\
+ wc -c $< >> $@;\
+ echo >> $@;\
+ else \
+ echo "TEST-FAIL: compile $(RELDIR)/$*" >> $@;\
+ fi
+
+# NAT tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.nat.report.txt): \
+Output/%.nightly.nat.report.txt: Output/%.out-nat
+ @echo > $@
+ @printf "TEST-RESULT-nat-time: " >> $@
+ -grep "^program" Output/$*.out-nat.time >> $@
+
+# LLC tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.llc.report.txt): \
+Output/%.nightly.llc.report.txt: Output/%.llvm.bc Output/%.exe-llc $(LLC)
+ @echo > $@
+ -head -n 100 Output/$*.exe-llc >> $@
+ @-if test -f Output/$*.exe-llc; then \
+ echo "TEST-PASS: llc $(RELDIR)/$*" >> $@;\
+ $(LLC) $< $(LLCFLAGS) -o /dev/null -f $(TIMEOPT) >> $@ 2>&1; \
+ printf "TEST-RESULT-llc: " >> $@;\
+ grep "Total Execution Time" $@.info >> $@;\
+ printf "TEST-RESULT-llc-time: " >> $@;\
+ grep "^program" Output/$*.out-llc.time >> $@;\
+ echo >> $@;\
+ else \
+ echo "TEST-FAIL: llc $(RELDIR)/$*" >> $@;\
+ fi
+
+# LLC experimental tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.llc-beta.report.txt): \
+Output/%.nightly.llc-beta.report.txt: Output/%.llvm.bc Output/%.exe-llc-beta $(LLC)
+ @echo > $@
+ -head -n 100 Output/$*.exe-llc-beta >> $@
+ @-if test -f Output/$*.exe-llc-beta; then \
+ echo "TEST-PASS: llc-beta $(RELDIR)/$*" >> $@;\
+ $(LLC) $< $(LLCFLAGS) $(LLCBETAOPTION) -o /dev/null -f $(TIMEOPT) >> $@ 2>&1; \
+ printf "TEST-RESULT-llc-beta: " >> $@;\
+ grep "Total Execution Time" $@.info >> $@;\
+ printf "TEST-RESULT-llc-beta-time: " >> $@;\
+ grep "^program" Output/$*.out-llc-beta.time >> $@;\
+ echo >> $@;\
+ else \
+ echo "TEST-FAIL: llc-beta $(RELDIR)/$*" >> $@;\
+ fi
+
+# OPT experimental tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.opt-beta.report.txt): \
+Output/%.nightly.opt-beta.report.txt: Output/%.llvm.optbeta.bc Output/%.exe-opt-beta $(LLC)
+ @echo > $@
+ -head -n 100 Output/$*.exe-opt-beta >> $@
+ @-if test -f Output/$*.exe-opt-beta; then \
+ echo "TEST-PASS: opt-beta $(RELDIR)/$*" >> $@;\
+ $(LLC) $< $(LLCFLAGS) -o /dev/null -f $(TIMEOPT) >> $@ 2>&1; \
+ printf "TEST-RESULT-opt-beta: " >> $@;\
+ grep "Total Execution Time" $@.info >> $@;\
+ printf "TEST-RESULT-opt-beta-time: " >> $@;\
+ grep "^program" Output/$*.out-opt-beta.time >> $@;\
+ echo >> $@;\
+ else \
+ echo "TEST-FAIL: opt-beta $(RELDIR)/$*" >> $@;\
+ fi
+
+# CBE tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.cbe.report.txt): \
+Output/%.nightly.cbe.report.txt: Output/%.llvm.bc Output/%.exe-cbe $(LDIS)
+ @echo > $@
+ -head -n 100 Output/$*.exe-cbe >> $@
+ @-if test -f Output/$*.exe-cbe; then \
+ echo "TEST-PASS: cbe $(RELDIR)/$*" >> $@;\
+ printf "TEST-RESULT-cbe-time: " >> $@;\
+ grep "^program" Output/$*.out-cbe.time >> $@;\
+ echo >> $@;\
+ else \
+ echo "TEST-FAIL: cbe $(RELDIR)/$*" >> $@;\
+ fi
+
+# JIT tests
+$(PROGRAMS_TO_TEST:%=Output/%.nightly.jit.report.txt): \
+Output/%.nightly.jit.report.txt: Output/%.llvm.bc Output/%.exe-jit $(LLI)
+ @echo > $@
+ -head -n 100 Output/$*.exe-jit >> $@
+ @-if test -f Output/$*.exe-jit; then \
+ echo "TEST-PASS: jit $(RELDIR)/$*" >> $@;\
+ printf "TEST-RESULT-jit-time: " >> $@;\
+ grep "^program" Output/$*.out-jit.time >> $@;\
+ echo >> $@;\
+ printf "TEST-RESULT-jit-comptime: " >> $@;\
+ grep "Total Execution Time" Output/$*.out-jit.info >> $@;\
+ echo >> $@;\
+ else \
+ echo "TEST-FAIL: jit $(RELDIR)/$*" >> $@;\
+ fi
+
+# Overall tests: just run subordinate tests
+$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
+Output/%.$(TEST).report.txt: $(addprefix Output/%.nightly., $(REPORTS_SUFFIX))
+ -cat $(addprefix Output/$*.nightly., $(REPORTS_SUFFIX)) > $@
+
+
+
+$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
+test.$(TEST).%: Output/%.$(TEST).report.txt
+ @echo "---------------------------------------------------------------"
+ @echo ">>> ========= '$(RELDIR)/$*' Program"
+ @echo "---------------------------------------------------------------"
+ @-cat $<
+
+REPORT_DEPENDENCIES := $(LDIS) $(LLI) $(LLC)
Added: test-suite/trunk/TEST.nightly2.report
URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/TEST.nightly2.report?rev=51495&view=auto
==============================================================================
--- test-suite/trunk/TEST.nightly2.report (added)
+++ test-suite/trunk/TEST.nightly2.report Fri May 23 14:07:35 2008
@@ -0,0 +1,103 @@
+##=== 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;
+$TrimRepeatedPrefix = 1;
+
+my $WallTimeRE = "Time: ([0-9.]+) seconds \\([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.]+)/) {
+ return sprintf("%7.3f", $1*60.0+$2);
+ }
+
+ return sprintf("%7.2f", $Time);
+}
+
+sub GCCCBERatio {
+ my ($Cols, $Col) = @_;
+ my $GCC = $Cols->[$Col-7];
+ my $CBE = $Cols->[$Col-6];
+ return "n/a" if ($GCC eq "*" or $CBE eq "*");
+ return sprintf("%3.2f", $GCC/$CBE) if ($GCC >= 0.1 and $CBE >= 0.1);
+ return "-";
+}
+
+sub GCCLLCRatio {
+ my ($Cols, $Col) = @_;
+ my $GCC = $Cols->[$Col-8];
+ my $LLC = $Cols->[$Col-6];
+ return "n/a" if ($GCC eq "*" or $LLC eq "*");
+ return sprintf("%3.2f", $GCC/$LLC) if ($GCC >= 0.1 and $LLC >= 0.1);
+ return "-";
+}
+
+sub GCCLLC_BETARatio {
+ my ($Cols, $Col) = @_;
+ my $GCC = $Cols->[$Col-9];
+ my $LLC_BETA = $Cols->[$Col-6];
+ return "n/a" if ($GCC eq "*" or $LLC_BETA eq "*");
+ return sprintf("%3.2f", $GCC/$LLC_BETA) if ($GCC >= 0.1 and $LLC_BETA >= 0.1);
+ return "-";
+}
+
+sub LLCLLC_BETARatio { # LLC/LLC-BETA
+ my ($Cols, $Col) = @_;
+ my $LLC = $Cols->[$Col-8];
+ my $LLC_BETA = $Cols->[$Col-7];
+ return "n/a" if ($LLC eq "*" or $LLC_BETA eq "*");
+ return sprintf("%3.2f", $LLC/$LLC_BETA) if ($LLC >= 0.1 and $LLC_BETA >= 0.1);
+ return "-";
+}
+
+sub OPTOPT_BETARatio { # OPT/OPT-BETA
+ my ($Cols, $Col) = @_;
+ my $LLC = $Cols->[$Col-9];
+ my $OPT_BETA = $Cols->[$Col-7];
+ return "n/allc" if ($LLC eq "*");
+ return "n/aopt" if ($OPT_BETA eq "*");
+ return "n/a" if ($LLC eq "*" or $OPT_BETA eq "*");
+ return sprintf("%3.2f", $LLC/$OPT_BETA) if ($LLC >= 0.1 and $OPT_BETA >= 0.1);
+ return "-";
+}
+
+# highlight the RATIO columns with green/red.
+$HilightColumns{14} = 1;
+$HilightColumns{15} = 1;
+$HilightColumns{16} = 1;
+$HilightColumns{17} = 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
+# 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]+)'],
+ ["LLC compile" , "TEST-RESULT-llc: .*$WallTimeRE"],
+ ["LLC-BETA compile" , "TEST-RESULT-llc-beta: .*$WallTimeRE"],
+ ["OPT-BETA compile" , "TEST-RESULT-opt-beta: .*$WallTimeRE"],
+ ["JIT codegen" , "TEST-RESULT-jit-comptime: .*$WallTimeRE"],
+ [],
+ ["GCC" , 'TEST-RESULT-nat-time: program\s*([.0-9m:]+)', \&FormatTime],
+ ["CBE" , 'TEST-RESULT-cbe-time: program\s*([.0-9m:]+)', \&FormatTime],
+ ["LLC" , 'TEST-RESULT-llc-time: program\s*([.0-9m:]+)', \&FormatTime],
+ ["LLC-BETA" , 'TEST-RESULT-llc-beta-time: program\s*([.0-9m:]+)',\&FormatTime],
+ ["OPT-BETA" , 'TEST-RESULT-opt-beta-time: program\s*([.0-9m:]+)',\&FormatTime],
+ ["JIT" , 'TEST-RESULT-jit-time: program\s*([.0-9m:]+)', \&FormatTime],
+ [],
+ ["GCC/CBE" , \&GCCCBERatio],
+ ["GCC/LLC" , \&GCCLLCRatio],
+ ["GCC/LLC-BETA" , \&GCCLLC_BETARatio],
+ ["LLC/LLC-BETA" , \&LLCLLC_BETARatio],
+ ["OPT/OPT-BETA" , \&OPTOPT_BETARatio]
+);
Propchange: test-suite/trunk/TEST.nightly2.report
------------------------------------------------------------------------------
svn:executable = *
More information about the llvm-commits
mailing list