diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d7d9dd04fb2eeb9e86ee5bbd4361e51e035509a2..6e6ffa5bdd506b815a91babdf4f08557087ee7a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,7 @@ build: script: - pacman -Sy && pacman -S --noconfirm bison flex gettext sdl2 lib32-glibc grep - export AM_HOME=$(pwd)/nexus-am/ - - cd nemu && make + - cd nemu && make EXTRA_FLAGS='-DDISABLE_MMIO' - show_log=1 ./runall.sh &> testcases.log ; echo $? > testres.log artifacts: paths: @@ -17,6 +17,12 @@ build: - nemu/testcases.log expire_in: 1 week +build-icc-pgo: + stage: build + script: + - pacman -Sy && pacman -S --noconfirm bison flex gettext sdl2 lib32-glibc grep + - export AM_HOME=$(pwd)/nexus-am/ + - cd nemu && ./icc-build.sh test: stage: test diff --git a/nemu/5e0a2631_649414.dyn b/nemu/5e0a2631_649414.dyn deleted file mode 100644 index 3f8b1feae3423fc40d200304b67df3d7bb400fe7..0000000000000000000000000000000000000000 Binary files a/nemu/5e0a2631_649414.dyn and /dev/null differ diff --git a/nemu/Makefile b/nemu/Makefile index f988fa24c7807d950206022bf19fc1a801e5593f..b3e86e14d90a91ee81896536dec895ae0dde01bf 100644 --- a/nemu/Makefile +++ b/nemu/Makefile @@ -16,12 +16,11 @@ include Makefile.git .DEFAULT_GOAL = app # Compilation flags -CXX = icpc +CXX ?= g++ LD = $(CXX) -EXTRA_FLAGS ?= -prof-use INCLUDES = $(addprefix -I, $(INC_DIR)) CFLAGS += -O3 -MMD -Wall $(INCLUDES) -fomit-frame-pointer -std=c++17 -CFLAGS += -no-ansi-alias -DDISABLE_MMIO -no-complex-limited-range -qopt-prefetch=2 $(EXTRA_FLAGS) +CFLAGS += $(EXTRA_FLAGS) # CFLAGS += -DDIFF_TEST_QEMU # Source code generation before any targets. @@ -70,3 +69,4 @@ clean: $(MAKE) -C tools/gen-expr clean $(MAKE) -C tools/qemu-diff clean $(MAKE) -C $(SUBDIRS) clean + rm -f *.dyn pgopti.dpi* diff --git a/nemu/icc-build.sh b/nemu/icc-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..3adee30d7dca9b7e4d15d5703504fbb0b6b2c636 --- /dev/null +++ b/nemu/icc-build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +xflags="-no-ansi-alias -DDISABLE_MMIO -no-complex-limited-range -qopt-prefetch=2" +cpus=$(grep -c '^processor' /proc/cpuinfo) + +make clean && +make EXTRA_FLAGS="$xflags -prof-gen" CXX=icpc -j$cpus && +make -C "$AM_HOME/apps/microbench" ARCH=x86-nemu && +build/nemu -b "$AM_HOME/apps/microbench/build/microbench-x86-nemu.bin" && +make clean && +make EXTRA_FLAGS="$xflags -prof-use" CXX=icpc -j$cpus + +exit $? + diff --git a/nemu/pgopti.dpi b/nemu/pgopti.dpi deleted file mode 100644 index 1787c3cf4efecebd17577f6e200215a774ee7829..0000000000000000000000000000000000000000 Binary files a/nemu/pgopti.dpi and /dev/null differ diff --git a/nemu/pgopti.dpi.lock b/nemu/pgopti.dpi.lock deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/nemu/src/device/vga.cc b/nemu/src/device/vga.cc index 906196dce1de028da1ac361e1adda43a6e141341..8095b786bb84fac392e771fc34680c39a880632c 100644 --- a/nemu/src/device/vga.cc +++ b/nemu/src/device/vga.cc @@ -37,11 +37,13 @@ static void init_vga_impl() { } void update_screen() { +#ifndef DISABLE_MMIO if(window == nullptr) init_vga_impl(); SDL_ErrorCheck(SDL_UpdateTexture(texture, NULL, vmem, SCREEN_W * sizeof(vmem[0][0]))); SDL_ErrorCheck(SDL_RenderClear(renderer)); SDL_ErrorCheck(SDL_RenderCopy(renderer, texture, NULL, NULL)); SDL_RenderPresent(renderer); +#endif } void init_vga() {