[PATCH] Add optimization flags for ARM926EJ-S

Boris Ulasevich boris.ulasevich at bell-sw.com
Tue Nov 13 10:14:55 UTC 2018


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 <linuxtardis at 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'
>>


More information about the build-dev mailing list