On Mon, 28 Aug 2023 23:28:44 GMT, Erik Joelsson <er...@openjdk.org> wrote:
>> Hi Erik, >> >> The reason this PR is focused on Linux is because the AVX512 sort and >> partitioning routines are based on Intel’s x86-simd-library >> (https://github.com/intel/x86-simd-sort) which was originally developed with >> GCC as the target compiler. Thus, this PR has restricted itself to Linux as >> the code was tested using GCC/Linux platforms. >> Additionally, the x86_64 library is compiled for AVX512 using file specific >> compilation pragmas (`#pragma GCC target("avx512dq", "avx512f")`). This >> feature is absent for Windows/MSVC++ compiler.” >> >> Thanks, >> Vamsi > > If it's tied to GCC as well, then we should probably include that in the > condition here unless it's also expected to work with Clang. > (`TOOLCHAIN_TYPE` = `gcc`) > The reason this PR is focused on Linux is because the AVX512 sort and > partitioning routines are based on Intel’s x86-simd-library > (https://github.com/intel/x86-simd-sort) which was originally developed with > GCC as the target compiler. Thus, this PR has restricted itself to Linux as > the code was tested using GCC/Linux platforms. Additionally, the x86_64 > library is compiled for AVX512 using file specific compilation pragmas > (`#pragma GCC target("avx512dq", "avx512f")`). This feature is absent for > Windows/MSVC++ compiler.” That is why I am questioning this approach to have additional separate C++ code library - too much dependencies on other tools. As I suggested before try to disassemble this library and use assembler code in VM new stubs. You can create specialized stubGenerator_x86_64_array_sort.cpp file for it. Then you don't need to depend on C++ compiler or OS. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14227#discussion_r1309054538