blob: 3f7ff968adedd676527d3054da281b25a1cea337 [file] [log] [blame]
##===- 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 := nat
REPORT_DEPENDENCIES :=
ifndef DISABLE_LLC
REPORTS_TO_GEN += llc compile
REPORT_DEPENDENCIES += $(LLC) $(LOPT)
endif
ifndef DISABLE_JIT
REPORTS_TO_GEN += jit compile
REPORT_DEPENDENCIES += $(LLI) $(LOPT)
endif
ifndef DISABLE_CBE
REPORTS_TO_GEN += cbe compile
REPORT_DEPENDENCIES += $(CBE) $(LOPT)
endif
ifdef ENABLE_LLCBETA
REPORTS_TO_GEN += llc-beta compile
REPORT_DEPENDENCIES += $(LLC) $(LOPT)
endif
ifdef ENABLE_OPTBETA
REPORTS_TO_GEN += opt-beta compile
REPORT_DEPENDENCIES += $(LOPT)
endif
REPORTS_SUFFIX := $(addsuffix .report.txt, $(REPORTS_TO_GEN))
# Compilation tests
$(PROGRAMS_TO_TEST:%=Output/%.nightly.compile.report.txt): \
Output/%.nightly.compile.report.txt: Output/%.llvm.bc
@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 | tail -n 1 >> $@;\
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/%.exe-llc
@echo > $@
-head -n 100 Output/$*.exe-llc >> $@
@-if test -f Output/$*.exe-llc; then \
echo "TEST-PASS: llc $(RELDIR)/$*" >> $@;\
printf "TEST-RESULT-llc: " >> $@;\
grep "Total Execution Time" Output/$*.llc.s.info | tail -n 1 >> $@;\
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
@echo > $@
-head -n 100 Output/$*.exe-llc-beta >> $@
@-if test -f Output/$*.exe-llc-beta; then \
echo "TEST-PASS: llc-beta $(RELDIR)/$*" >> $@;\
printf "TEST-RESULT-llc-beta: " >> $@;\
grep "Total Execution Time" Output/$*.llc-beta.s.info | tail -n 1 >> $@;\
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/%.exe-opt-beta
@echo > $@
-head -n 100 Output/$*.exe-opt-beta >> $@
@-if test -f Output/$*.exe-opt-beta; then \
echo "TEST-PASS: opt-beta $(RELDIR)/$*" >> $@;\
printf "TEST-RESULT-opt-beta: " >> $@;\
grep "Total Execution Time" Output/$*.opt-beta.s.info | tail -n 1 >> $@;\
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/%.exe-cbe
@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/%.exe-jit
@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 | tail -n 1 >> $@;\
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))
$(VERB) $(RM) -f $@
@echo "---------------------------------------------------------------" >> $@
@echo ">>> ========= '$(RELDIR)/$*' Program" >> $@
@echo "---------------------------------------------------------------" >> $@
-cat $(addprefix Output/$*.nightly., $(REPORTS_SUFFIX)) >> $@
$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
test.$(TEST).%: Output/%.$(TEST).report.txt
@-cat $<