aboutsummaryrefslogtreecommitdiff
path: root/debug/Makefile
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2019-12-10 13:22:58 -0800
committerGitHub <noreply@github.com>2019-12-10 13:22:58 -0800
commit9e3decb78644b7fce690acb217b295a40b86ef12 (patch)
tree975301684510c2c4ad0123d7d33054f32babaf1b /debug/Makefile
parent39234b7491c05e98f84d981f1c7bb6aea005ab30 (diff)
downloadriscv-tests-9e3decb78644b7fce690acb217b295a40b86ef12.zip
riscv-tests-9e3decb78644b7fce690acb217b295a40b86ef12.tar.gz
riscv-tests-9e3decb78644b7fce690acb217b295a40b86ef12.tar.bz2
Improve parallellism in debug test Makefile (#223)
* Improve parallellism in debug test Makefile Now each test is an individual make target, so you can get the most out of however many cores you have. On my 12-core system, `make` went from 2m45s to 42s, and `make all` went from `3m25s` to `2m39s`. If you have few cores, this change may actually slow things down a bit, because ExamineTarget is run for every gdbserver.py invocation. * Remove test target.
Diffstat (limited to 'debug/Makefile')
-rw-r--r--debug/Makefile20
1 files changed, 13 insertions, 7 deletions
diff --git a/debug/Makefile b/debug/Makefile
index 41d08f5..3efdea8 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -3,6 +3,7 @@ XLEN ?= 64
src_dir ?= .
GDBSERVER_PY = $(src_dir)/gdbserver.py
+TESTS = $(shell $(GDBSERVER_PY) --list-tests $(src_dir)/targets/RISC-V/spike32.py)
default: spike$(XLEN) spike$(XLEN)-2
@@ -11,19 +12,24 @@ all-tests: spike32 spike32-2 spike32-2-rtos spike32-2-hwthread \
all: pylint all-tests
+run.%:
+ echo $@
+ $(GDBSERVER_PY) \
+ $(src_dir)/targets/RISC-V/$(word 2, $(subst ., ,$@)).py \
+ $(word 3, $(subst ., ,$@)) \
+ --isolate \
+ --print-failures \
+ --sim_cmd $(RISCV)/bin/$(RISCV_SIM) \
+ --server_cmd $(RISCV)/bin/openocd
+
# Target to check all the multicore options.
multi-tests: spike32-2 spike64-2-rtos spike32-2-hwthread
pylint:
pylint --rcfile=pylint.rc `git ls-files '*.py'`
-spike%:
- $(GDBSERVER_PY) \
- --isolate \
- --print-failures \
- $(src_dir)/targets/RISC-V/$@.py \
- --sim_cmd $(RISCV)/bin/$(RISCV_SIM) \
- --server_cmd $(RISCV)/bin/openocd
+spike%: $(foreach test, $(TESTS), run.spike%.$(test))
+ echo Finished $@
clean:
rm -f *.pyc