On Thu, 16 Nov 2023 13:00:03 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:

>> Xiaohong Gong has updated the pull request with a new target base due to a 
>> merge or a rebase. The incremental webrev excludes the unrelated changes 
>> brought in by the merge/rebase. The pull request contains five additional 
>> commits since the last revision:
>> 
>>  - Add a bundled native lib in jdk as a bridge to libsleef
>>  - Merge 'jdk:master' into JDK-8312425
>>  - Disable sleef by default
>>  - Merge 'jdk:master' into JDK-8312425
>>  - 8312425: [vectorapi] AArch64: Optimize vector math operations with SLEEF
>
> doc/building.md line 552:
> 
>> 550: 
>> 551: libsleef, the [SIMD Library for Evaluating Elementary Functions](
>> 552: https://sleef.org/) is required when building libvmath.so on 
>> Linux+AArch64
> 
> The conventional way we have refered to os/cpu combinations in the build 
> documentation is like this: `Linux/aarch64`.
> 
> I also think you need to expand a bit that this is optional, and if you do 
> not provide libsleef, the build will succeed but without the vector 
> performance enhancements provided by libvmath.

Thanks for the review! This sounds good to me. I will add it.

> make/autoconf/lib-vmath.m4 line 49:
> 
>> 47:          test -e ${with_libsleef}/include/sleef.h; then
>> 48:         LIBSLEEF_FOUND=yes
>> 49:         LIBVMATH_LIBS="-L${with_libsleef}/lib"
> 
> This should be LIBSLEEF_LIBS and ...CFLAGS.

Seems as above. The target library is `libvmath.so`, and the cflags/libs are 
used for building it instead of `libsleef.so`.

> make/autoconf/lib-vmath.m4 line 92:
> 
>> 90:             []
>> 91:         )
>> 92:         AC_MSG_RESULT([${SVE_FEATURE_SUPPORT}])
> 
> What is this test even for? I can't see any usage of SVE_FEATURE_SUPPORT 
> outside this function.

This is just used to print the result of `AC_MSG_CEHCKING[if ARM SVE feature is 
supported]` in configure.

> make/autoconf/lib-vmath.m4 line 102:
> 
>> 100:   fi
>> 101: 
>> 102:   AC_SUBST(LIBSLEEF_FOUND)
> 
> Do not export LIBSLEEF_FOUND. It is okay to use internally here, but you 
> should instead export ENABLE_LIBSLEEF, using true/false (instead of yes/no). 
> This is the way we handle all other optional components.

Make sense to me. Thanks for the comment!

> make/autoconf/libraries.m4 line 129:
> 
>> 127:   LIB_SETUP_LIBFFI
>> 128:   LIB_SETUP_MISC_LIBS
>> 129:   LIB_SETUP_VMATH
> 
> The function (and file) should be named after "sleef", not "vmath".

Yes, it seems weird. But the library we want to built out is `libvmath.so` 
instead of `libsleef.so`. And we not only check the sleef library, but also the 
ARM SVE feature inside it. So using `VMATH` suffix is more reasonable to me. 
WDYT?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16234#discussion_r1398574834
PR Review Comment: https://git.openjdk.org/jdk/pull/16234#discussion_r1398573871
PR Review Comment: https://git.openjdk.org/jdk/pull/16234#discussion_r1398571212
PR Review Comment: https://git.openjdk.org/jdk/pull/16234#discussion_r1398575161
PR Review Comment: https://git.openjdk.org/jdk/pull/16234#discussion_r1398572906

Reply via email to