Hi Jakub,
I am not against this patch, but I have a few concerns. (1) For me
motivation "might increase performance a little bit" is not quite clear.
It would be better to have some confidence. (2) Is the particular CPU
highly distributed? I am not sure anybody else will get benefit from
this change. (3) flags-other.m4 seems not to be a good place to setup
-mcpu details.
thanks,
Boris
On 13.11.2018 2:41, David Holmes wrote:
Hi Jakub,
Build file changes have to be reviewed on build-dev - cc'd.
Thanks,
David
On 13/11/2018 8:57 AM, Jakub Vaněk wrote:
Hi,
This patch adds a new ARM ABI option for ARM926EJ-S. The reason is not
because of ABI breakage, but it is because of GCC -mcpu flags
specifically for this CPU. We think that this might increase
performance a little bit. However, we do not have numbers for this.
Alternatively, we may just stick to the arm-sflt ABI option.
This patch was successfully built with a few other independent patches
here: https://ci.adoptopenjdk.net/view/ev3dev/ ;
https://github.com/ev3dev-lang-java/openjdk-ev3
We haven't run full jtreg tests on the target platform yet, but Juan
Antonio Brena Moral invested his time into Adopt's openjdktests in
QEMU. Also, the JVM seems to run fine on the ARM board itself.
Regards,
Jakub Vanek (with credit to Juan Antonio)
# HG changeset patch
# User Jakub Vaněk <linuxtar...@gmail.com>
# Date 1542060149 -3600
# Mon Nov 12 23:02:29 2018 +0100
# Node ID 82c5c630ee8f9237b533ba6414143d109dec0180
# Parent a609d549992a4d094a514a6c0f5b79443192d8bf
Add optimization flags for ARM926EJ-S
diff --git a/make/autoconf/flags-other.m4 b/make/autoconf/flags-other.m4
--- a/make/autoconf/flags-other.m4
+++ b/make/autoconf/flags-other.m4
@@ -119,6 +119,10 @@
# Misuse EXTRA_CFLAGS to mimic old behavior
$2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"
+ if test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm926ejs; then
+ $2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS -mcpu=arm926ej-s"
+ fi
+
AC_SUBST($2JVM_ASFLAGS)
])
diff --git a/make/autoconf/flags.m4 b/make/autoconf/flags.m4
--- a/make/autoconf/flags.m4
+++ b/make/autoconf/flags.m4
@@ -34,7 +34,7 @@
AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
[
AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
- [specify ABI profile for ARM builds
(arm-vfp-sflt,arm-vfp-hflt,arm-sflt,
armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain dependent@:>@
])])
+ [specify ABI profile for ARM builds
(arm-vfp-sflt,arm-vfp-hflt,arm-sflt,
arm926ejs,armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain
dependent@:>@ ])])
if test "x$with_abi_profile" != x; then
if test "x$OPENJDK_TARGET_CPU" != xarm && \
@@ -55,6 +55,9 @@
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm-sflt; then
ARM_FLOAT_TYPE=sflt
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'
+ elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm926ejs; then
+ ARM_FLOAT_TYPE=sflt
+ ARM_ARCH_TYPE_FLAGS='-mcpu=arm926ej-s -marm'
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv5-vfp-sflt; then
ARM_FLOAT_TYPE=vfp-sflt
ARM_ARCH_TYPE_FLAGS='-march=armv5t -marm'