diff --git a/nemu/5e0a2631_649414.dyn b/nemu/5e0a2631_649414.dyn
new file mode 100644
index 0000000000000000000000000000000000000000..3f8b1feae3423fc40d200304b67df3d7bb400fe7
Binary files /dev/null and b/nemu/5e0a2631_649414.dyn differ
diff --git a/nemu/Makefile b/nemu/Makefile
index d47a0af0ddf90c06f0fc9c47885855b5c321ffe4..f988fa24c7807d950206022bf19fc1a801e5593f 100644
--- a/nemu/Makefile
+++ b/nemu/Makefile
@@ -16,10 +16,12 @@ include Makefile.git
 .DEFAULT_GOAL = app
 
 # Compilation flags
-CXX ?= g++
+CXX = icpc
 LD = $(CXX)
+EXTRA_FLAGS ?= -prof-use
 INCLUDES  = $(addprefix -I, $(INC_DIR))
-CFLAGS   += -O3 -MMD -Wall -ggdb $(INCLUDES) -fomit-frame-pointer -std=c++17
+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   += -DDIFF_TEST_QEMU
 
 # Source code generation before any targets.
diff --git a/nemu/pgopti.dpi b/nemu/pgopti.dpi
new file mode 100644
index 0000000000000000000000000000000000000000..1787c3cf4efecebd17577f6e200215a774ee7829
Binary files /dev/null and b/nemu/pgopti.dpi differ
diff --git a/nemu/pgopti.dpi.lock b/nemu/pgopti.dpi.lock
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391