forked from llvm/llvm-test-suite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTEST.nightly.Makefile
113 lines (100 loc) · 3.89 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
##===- test/Programs/TEST.nightly.Makefile --*- Makefile -*-=======- vim:ft=make
#
# 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 := $(shell cd $(LEVEL)/test/Programs; pwd)/
RELDIR := $(subst $(PROGDIR),,$(CURDIR))
CFLAGS := -O3
REPORTS_TO_GEN := compile nat llc cbe jit
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 $(LGCCAS)
@echo > $@
@echo '$(LGCCAS) Output/$*.linked.rll -o /dev/null $(TIMEOPT) >>$@ 2>&1'
@-if ($(LGCCAS) Output/$*.linked.rll -o /dev/null $(TIMEOPT) >>$@ 2>&1)\
;then \
echo "TEST-PASS: compile $(RELDIR)/$*" >> $@;\
printf "TEST-RESULT-compile: " >> $@;\
grep "Total Execution Time" $@.info >> $@;\
echo >> $@;\
printf "TEST-RESULT-compile: " >> $@;\
wc -c $< >> $@;\
echo >> $@;\
$(LANALYZE) -stats -instcount $< -info-output-file=Output/$*.ic;\
printf "TEST-RESULT-compile: " >> $@;\
grep 'Number of instructions (of all types)$$' Output/$*.ic >> $@;\
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 "^real" 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) $< -o /dev/null -f $(TIMEOPT) >> $@ 2>&1; \
printf "TEST-RESULT-llc: " >> $@;\
grep "Total Execution Time" $@.info >> $@;\
printf "TEST-RESULT-llc-time: " >> $@;\
grep "^real" Output/$*.out-llc.time >> $@;\
echo >> $@;\
else \
echo "TEST-FAIL: llc $(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 "^real" 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 "^real" Output/$*.out-jit.time >> $@;\
echo >> $@;\
printf "TEST-RESULT-jit-comptime: " >> $@;\
grep "Total Execution Time" Output/$*.out-jit.info >> $@;\
echo >> $@;\
printf "TEST-RESULT-jit-machcode: " >> $@;\
grep "bytes of machine code compiled" 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)