forked from llvm/llvm-test-suite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTEST.nightly.Makefile
153 lines (137 loc) · 5.01 KB
/
TEST.nightly.Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
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)