coremark: add various optimization options 13349/head
authorAleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
Fri, 24 Jul 2020 20:40:58 +0000 (22:40 +0200)
committerAleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
Wed, 9 Sep 2020 20:29:25 +0000 (22:29 +0200)
Changes:
- Pass compiler flags through PORT_CFLAGS (previously, it was always compiled with -O2 -lrt)
- Add option to override toolchain and use -O3
- Disable MIPS16 (highly decreases results)
- Enable LTO

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
utils/coremark/Makefile

index 81f0d101e043215f3c3c2bb2ddbdd60ab5e31346..4ba7ffde5756d30e797f086841ffdb2b006d52c1 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=coremark
 PKG_SOURCE_DATE:=2020-05-28
 PKG_SOURCE_VERSION:=7685fd32bd7919581bfff2881a6dac6320581400
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/eembc/coremark/tar.gz/$(PKG_SOURCE_VERSION)?
@@ -21,6 +21,8 @@ PKG_MAINTAINER:=Lim Guo Wei <limguowei@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE.md
 
+PKG_USE_MIPS16:=0
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/coremark
@@ -36,12 +38,27 @@ endef
 
 DIR_ARCH:=linux$(if $(CONFIG_ARCH_64BIT),64)
 
+define Package/coremark/config
+       config COREMARK_OPTIMIZE_O3
+               bool "Use all optimizations (-O3)"
+               depends on PACKAGE_coremark
+               default y
+               help
+                       This enables additional optmizations using the -O3 compilation flag.
+endef
+
+TARGET_CFLAGS += -flto
+
+ifeq ($(CONFIG_COREMARK_OPTIMIZE_O3),y)
+       TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3
+endif
+
 define Build/Compile
        $(SED) 's|EXE = .exe|EXE =|' $(PKG_BUILD_DIR)/$(DIR_ARCH)/core_portme.mak
        mkdir $(PKG_BUILD_DIR)/$(ARCH)
        $(CP) -r $(PKG_BUILD_DIR)/$(DIR_ARCH)/* $(PKG_BUILD_DIR)/$(ARCH)
        $(MAKE) -C $(PKG_BUILD_DIR) PORT_DIR=$(ARCH) $(MAKE_FLAGS) \
-               compile 
+               PORT_CFLAGS="$(TARGET_CFLAGS)" compile
 endef
 
 define Package/coremark/install