source: benchmark/Makefile.am@ af43394

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox new-ast new-ast-unique-expr no_list persistent-indexer pthread-emulation qualifiedEnum
Last change on this file since af43394 was d0c91a6, checked in by Thierry Delisle <tdelisle@…>, 7 years ago

Merge branch 'master' into jenkins-sandbox

  • Property mode set to 100644
File size: 10.0 KB
Line 
1######################## -*- Mode: Makefile-Automake -*- ######################
2##
3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
4##
5## The contents of this file are covered under the licence agreement in the
6## file "LICENCE" distributed with Cforall.
7##
8## Makefile.am --
9##
10## Author : Peter A. Buhr
11## Created On : Sun May 31 09:08:15 2015
12## Last Modified By : Peter A. Buhr
13## Last Modified On : Tue Nov 6 09:01:23 2018
14## Update Count : 26
15###############################################################################
16
17AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names
18ACLOCAL_AMFLAGS = -I automake
19
20# applies to both programs
21include $(top_srcdir)/src/cfa.make
22
23
24
25AM_CFLAGS = -O2 -Wall -I$(srcdir) -lrt -pthread
26AM_CFAFLAGS = -quiet -in-tree -nodebug
27AM_UPPFLAGS = -quiet -nodebug -multi
28
29TOOLSDIR = ${abs_top_builddir}/tools/
30REPEAT = ${abs_top_builddir}/tools/repeat
31STATS = ${abs_top_srcdir}/tools/stat.py
32repeats = 30
33skipcompile = no
34TIME_FORMAT = "%E"
35PRINT_FORMAT = %20s: #Comments needed for spacing
36
37# Dummy hack tricks
38EXTRA_PROGRAMS = dummy # build but do not install
39dummy_SOURCES = dummyC.c dummyCXX.cpp
40
41dummyC.c:
42 @echo "int main() { return 0; }" > ${@}
43
44dummyCXX.cpp:
45 @echo "int main() { return 0; }" > ${@}
46
47.NOTPARALLEL:
48
49## =========================================================================================================
50all : ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
51
52%.run : %$(EXEEXT) ${REPEAT}
53 @rm -f .result.log
54 @echo "------------------------------------------------------"
55 @echo $<
56 @${REPEAT} ${repeats} ./a.out | tee -a .result.log
57 @${STATS} .result.log
58 @echo "------------------------------------------------------"
59 @rm -f a.out .result.log *.class
60
61%.runquiet :
62 @+make $(basename $@) CFLAGS="-w"
63 @taskset -c 1 ./a.out
64 @rm -f a.out
65
66%.make :
67 @printf "${PRINT_FORMAT}" $(basename $(subst compile-,,$@))
68 @+/usr/bin/time -f ${TIME_FORMAT} make $(basename $@) 2>&1
69
70${REPEAT} :
71 @+make -C ${abs_top_builddir}/tools repeat
72
73## =========================================================================================================
74
75jenkins$(EXEEXT):
76 @echo "{"
77 @echo -e '\t"githash": "'${githash}'",'
78 @echo -e '\t"arch": "' ${arch} '",'
79@DOifskipcompile@
80 @echo -e '\t"compile": {'
81 @+make compile TIME_FORMAT='%e,' PRINT_FORMAT='\t\t\"%s\" :'
82 @echo -e '\t\t"dummy" : {}'
83 @echo -e '\t},'
84@DOendif@
85 @echo -e '\t"ctxswitch": {'
86 @echo -en '\t\t"coroutine":'
87 @+make ctxswitch-cfa_coroutine.runquiet
88 @echo -en '\t\t,"thread":'
89 @+make ctxswitch-cfa_thread.runquiet
90 @echo -e '\t},'
91 @echo -e '\t"mutex": ['
92 @echo -en '\t\t'
93 @+make mutex-cfa1.runquiet
94 @echo -en '\t\t,'
95 @+make mutex-cfa2.runquiet
96 @echo -e '\t],'
97 @echo -e '\t"scheduling": ['
98 @echo -en '\t\t'
99 @+make signal-cfa1.runquiet
100 @echo -en '\t\t,'
101 @+make signal-cfa2.runquiet
102 @echo -en '\t\t,'
103 @+make waitfor-cfa1.runquiet
104 @echo -en '\t\t,'
105 @+make waitfor-cfa2.runquiet
106 @echo -e '\n\t],'
107 @echo -e '\t"epoch": ' $(shell date +%s)
108 @echo "}"
109
110## =========================================================================================================
111loop$(EXEEXT):
112 $(AM_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/loop.c
113
114function$(EXEEXT):
115 $(AM_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/function.c
116
117fetch_add$(EXEEXT):
118 $(AM_V_CC)$(COMPILE) -DBENCH_N=500000000 $(srcdir)/fetch_add.c
119
120## =========================================================================================================
121CTXSWITCH_DEPEND = \
122 loop.run \
123 function.run \
124 fetch_add.run \
125 ctxswitch-pthread.run \
126 ctxswitch-cfa_coroutine.run \
127 ctxswitch-cfa_thread.run \
128 ctxswitch-cfa_thread2.run \
129 ctxswitch-upp_coroutine.run \
130 ctxswitch-upp_thread.run \
131 ctxswitch-goroutine.run \
132 ctxswitch-java_thread.run
133
134if WITH_LIBFIBRE
135CTXSWITCH_DEPEND += \
136 ctxswitch-kos_fibre.run \
137 ctxswitch-kos_fibre2.run
138
139
140ctxswitch-kos_fibre$(EXEEXT):
141 $(AM_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp -I$(LIBFIBRE_DIR) -lfibre
142
143ctxswitch-kos_fibre2$(EXEEXT):
144 $(AM_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre2.cpp -I$(LIBFIBRE_DIR) -lfibre
145endif
146
147ctxswitch$(EXEEXT): $(CTXSWITCH_DEPEND)
148
149ctxswitch-pthread$(EXEEXT):
150 $(AM_V_CC)$(COMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/pthreads.c
151
152ctxswitch-cfa_coroutine$(EXEEXT):
153 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_cor.cfa
154
155ctxswitch-cfa_thread$(EXEEXT):
156 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd.cfa
157
158ctxswitch-cfa_thread2$(EXEEXT):
159 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/cfa_thrd2.cfa
160
161ctxswitch-upp_coroutine$(EXEEXT):
162 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_cor.cc
163
164ctxswitch-upp_thread$(EXEEXT):
165 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/upp_thrd.cc
166
167ctxswitch-goroutine$(EXEEXT):
168 $(AM_V_GOC)go build -o a.out $(srcdir)/ctxswitch/goroutine.go
169
170ctxswitch-java_thread$(EXEEXT):
171 $(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/ctxswitch/JavaThread.java
172 @echo "#!/bin/sh" > a.out
173 @echo "java JavaThread" >> a.out
174 @chmod a+x a.out
175
176## =========================================================================================================
177mutex$(EXEEXT) :\
178 loop.run \
179 function.run \
180 fetch_add.run \
181 mutex-pthread_lock.run \
182 mutex-upp.run \
183 mutex-cfa1.run \
184 mutex-cfa2.run \
185 mutex-cfa4.run \
186 mutex-java_thread.run
187
188mutex-pthread_lock$(EXEEXT):
189 $(AM_V_CC)$(COMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
190
191mutex-upp$(EXEEXT):
192 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
193
194mutex-cfa1$(EXEEXT):
195 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000 $(srcdir)/mutex/cfa1.cfa
196
197mutex-cfa2$(EXEEXT):
198 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000 $(srcdir)/mutex/cfa2.cfa
199
200mutex-cfa4$(EXEEXT):
201 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=5000000 $(srcdir)/mutex/cfa4.cfa
202
203mutex-java_thread$(EXEEXT):
204 $(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/mutex/JavaThread.java
205 @echo "#!/bin/sh" > a.out
206 @echo "java JavaThread" >> a.out
207 @chmod a+x a.out
208
209## =========================================================================================================
210signal$(EXEEXT) :\
211 signal-pthread_cond.run \
212 signal-upp.run \
213 signal-cfa1.run \
214 signal-cfa2.run \
215 signal-cfa4.run \
216 signal-java_thread.run
217
218signal-pthread_cond$(EXEEXT):
219 $(AM_V_CC)$(COMPILE) -DBENCH_N=500000 $(srcdir)/schedint/pthreads.c
220
221signal-upp$(EXEEXT):
222 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedint/upp.cc
223
224signal-cfa1$(EXEEXT):
225 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedint/cfa1.cfa
226
227signal-cfa2$(EXEEXT):
228 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedint/cfa2.cfa
229
230signal-cfa4$(EXEEXT):
231 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedint/cfa4.cfa
232
233signal-java_thread$(EXEEXT):
234 $(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/schedint/JavaThread.java
235 @echo "#!/bin/sh" > a.out
236 @echo "java JavaThread" >> a.out
237 @chmod a+x a.out
238
239
240## =========================================================================================================
241waitfor$(EXEEXT) :\
242 waitfor-upp.run \
243 waitfor-cfa1.run \
244 waitfor-cfa2.run \
245 waitfor-cfa4.run
246
247waitfor-upp$(EXEEXT):
248 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
249
250waitfor-cfa1$(EXEEXT):
251 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedext/cfa1.cfa
252
253waitfor-cfa2$(EXEEXT):
254 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedext/cfa2.cfa
255
256waitfor-cfa4$(EXEEXT):
257 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=500000 $(srcdir)/schedext/cfa4.cfa
258
259## =========================================================================================================
260creation$(EXEEXT) :\
261 creation-pthread.run \
262 creation-cfa_coroutine.run \
263 creation-cfa_coroutine_eager.run \
264 creation-cfa_thread.run \
265 creation-upp_coroutine.run \
266 creation-upp_thread.run \
267 creation-goroutine.run \
268 creation-java_thread.run
269
270creation-cfa_coroutine$(EXEEXT):
271 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
272
273creation-cfa_coroutine_eager$(EXEEXT):
274 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa -DEAGER
275
276creation-cfa_thread$(EXEEXT):
277 $(AM_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
278
279creation-upp_coroutine$(EXEEXT):
280 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
281
282creation-upp_thread$(EXEEXT):
283 $(AM_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
284
285creation-pthread$(EXEEXT):
286 $(AM_V_CC)$(COMPILE) -DBENCH_N=250000 $(srcdir)/creation/pthreads.c
287
288creation-goroutine$(EXEEXT):
289 $(AM_V_GOC)go build -o a.out $(srcdir)/creation/goroutine.go
290
291creation-java_thread$(EXEEXT):
292 $(AM_V_JAVAC)javac -d $(builddir) $(srcdir)/creation/JavaThread.java
293 @echo "#!/bin/sh" > a.out
294 @echo "java JavaThread" >> a.out
295 @chmod a+x a.out
296
297## =========================================================================================================
298
299compile$(EXEEXT) :\
300 compile-array.make \
301 compile-attributes.make \
302 compile-empty.make \
303 compile-expression.make \
304 compile-io.make \
305 compile-monitor.make \
306 compile-operators.make \
307 compile-typeof.make
308
309
310testdir = $(top_srcdir)/tests
311
312compile-array$(EXEEXT):
313 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/array.cfa
314
315compile-attributes$(EXEEXT):
316 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/attributes.cfa
317
318compile-empty$(EXEEXT):
319 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(srcdir)/compile/empty.cfa
320
321compile-expression$(EXEEXT):
322 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/expression.cfa
323
324compile-io$(EXEEXT):
325 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/io1.cfa
326
327compile-monitor$(EXEEXT):
328 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/monitor.cfa
329
330compile-operators$(EXEEXT):
331 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/operators.cfa
332
333compile-thread$(EXEEXT):
334 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/concurrent/thread.cfa
335
336compile-typeof$(EXEEXT):
337 $(AM_V_CFA)$(CFACOMPILE) -fsyntax-only -w $(testdir)/typeof.cfa
338
Note: See TracBrowser for help on using the repository browser.