On Thu, 27 Jun 2024 22:03:37 GMT, Mikael Vidstedt <mik...@openjdk.org> wrote:

>> [JDK-8312425](https://bugs.openjdk.org/browse/JDK-8312425) is looking to 
>> optimize vector math operations by leveraging the SLEEF library. For legal 
>> reasons the actual contribution of the SLEEF files needs to be handled 
>> separately. This enhancement adds the relevant files, enabling the rest of 
>> [JDK-8312425](https://bugs.openjdk.org/browse/JDK-8312425) to move forward.
>
> Mikael Vidstedt has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Update README to include RISC-V

By understanding the previous discussion, there should be 2 parts of source 
code related to sleef integrated into jdk: 
1]. original sleef source
2]. pre-processed sleef header files

Besides of above sources, there should be another part connecting above 2 
parts, i.e. 
3]. scripts to transfering from 1] to 2], and necessary documents, e.g. record 
which tag of sleef to use, .


So, for the source layout/organization, the previous conclusion is to have both 
1] and 2], and 1] is just for verification and reproducing, general build of 
jdk only needs 2].

As to where to put various new files, I think current location for 2] in this 
pr is good, 1] could be put somewhere with minimum impact on current build 
system, `src/utils/sleef` suggested by @magicus is a good candidate, 3] should 
be put together with 1].
In summary, one solution could be as below:

${JDK_ROOT}/src
  |-- utils/
      |-- sleef-src/   # i.e. part 1]
           |-- ... # original sleef source, we could trim or not trim the src 
tree. 
      |-- sleef-misc/
          |-- createSleef.sh    # accept a sleef source root(i.e. part 1], or 
an external sleef repo location) as input, and generate sleef header files(i.e. 
part 2] )
          |-- sleef.md
          |-- ..  # other misc files, e.g. 
  |-- jdk.incubator.vector/linux/native/libvectormath      # i.e. part 2]
      |-- README  # also including a reference pointing to src/utils/sleef*
      |-- misc.h
      |-- sleefinline_advsimd.h
      |-- sleefinline_rvvm1.h
      |-- sleefinline_sve.h


As for which part of original sleef source to integreate into jdk, we could 
trim the original source in some way, but I think it's more simple and 
maintainable to just put all sleef source into jdk without any trim.

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

PR Comment: https://git.openjdk.org/jdk/pull/19185#issuecomment-2315693943

Reply via email to