2021-11-29 21:33:01 +00:00
|
|
|
PORT_DIR = $(CURDIR)/riscv64-baremetal
|
2022-07-07 23:11:02 +00:00
|
|
|
cmbase=../../addins/coremark
|
|
|
|
# cmbase= ../riscv-coremark/coremark
|
2022-07-06 23:43:57 +00:00
|
|
|
work_dir= ../../benchmarks/coremark/work
|
|
|
|
XLEN ?=64
|
2021-11-29 21:33:01 +00:00
|
|
|
sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h \
|
|
|
|
$(cmbase)/core_matrix.c $(cmbase)/core_state.c $(cmbase)/core_util.c \
|
|
|
|
$(PORT_DIR)/core_portme.h $(PORT_DIR)/core_portme.c $(PORT_DIR)/core_portme.mak \
|
|
|
|
$(PORT_DIR)/crt.S $(PORT_DIR)/encoding.h $(PORT_DIR)/util.h $(PORT_DIR)/syscalls.c
|
2022-07-07 23:42:30 +00:00
|
|
|
ABI = lp64
|
|
|
|
#$(if $(findstring 64, $(XLEN)), lp64, ilp32)
|
|
|
|
PORT_CFLAGS = -g -march=$(XLEN)im -mabi=$(ABI) -static -mcmodel=medlow -mtune=sifive-3-series \
|
|
|
|
-O3 -falign-functions=16 -funroll-all-loops \
|
|
|
|
-finline-functions -falign-jumps=4 \
|
|
|
|
-nostdlib -nostartfiles -ffreestanding -mstrict-align \
|
|
|
|
-DTOTAL_DATA_SIZE=2000 -DMAIN_HAS_NOARGC=1 \
|
|
|
|
-DPERFORMANCE_RUN=1
|
|
|
|
|
2021-11-29 21:33:01 +00:00
|
|
|
|
2022-06-13 23:23:57 +00:00
|
|
|
$(work_dir)/coremark.bare.riscv.elf.memfile: $(work_dir)/coremark.bare.riscv
|
2022-02-02 00:25:03 +00:00
|
|
|
riscv64-unknown-elf-objdump -D $< > $<.elf.objdump
|
2022-07-06 23:43:57 +00:00
|
|
|
riscv64-unknown-elf-elf2hex --bit-width $(XLEN) --input $< --output $@
|
2022-02-02 00:25:03 +00:00
|
|
|
extractFunctionRadix.sh $<.elf.objdump
|
2022-07-07 23:42:30 +00:00
|
|
|
(cd ../../pipelined/regression && (vsim -c -do "do wally-pipelined-batch.do rv$(XLEN)gc coremark" 2>&1 | tee $(work_dir)/coremark.sim.log))
|
2022-06-10 19:15:17 +00:00
|
|
|
cd ../../benchmarks/coremark/
|
2021-11-19 04:23:55 +00:00
|
|
|
|
2022-06-13 23:23:57 +00:00
|
|
|
$(work_dir)/coremark.bare.riscv: $(sources) Makefile
|
|
|
|
# make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=/opt/riscv/riscv-gnu-toolchain XCFLAGS="-march=rv64imd -mabi=lp64d -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fno-toplevel-reorder --param=max-inline-insns-size=128 -fipa-pta"
|
|
|
|
# These flags were used by WD on CoreMark
|
2022-07-06 23:43:57 +00:00
|
|
|
# make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV)/riscv-gnu-toolchain XCFLAGS="-march=rv64imd -mabi=lp64d -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fipa-pta "
|
2022-07-07 23:42:30 +00:00
|
|
|
make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV)/riscv-gnu-toolchain XCFLAGS="-march=rv$(XLEN)im -mabi=$(ABI) -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fipa-pta "
|
2022-06-13 23:23:57 +00:00
|
|
|
# -fno-toplevel-reorder --param=max-inline-insns-size=128 " # adding this bit caused a compiler error
|
|
|
|
mkdir -p $(work_dir)
|
|
|
|
mv $(cmbase)/coremark.bare.riscv $(work_dir)
|
2021-11-19 04:23:55 +00:00
|
|
|
|
2022-06-10 19:15:17 +00:00
|
|
|
|
2021-11-19 04:23:55 +00:00
|
|
|
.PHONY: clean
|
|
|
|
|
|
|
|
clean:
|
2022-06-13 23:23:57 +00:00
|
|
|
rm -f $(work_dir)/*
|