[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