[llvm] [SLP]Reduce number of alternate instruction, where possible (PR #123360)
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Sat Feb 1 06:18:13 PST 2025
alexey-bataev wrote:
> Thanks for the revert - I was just double-checking if we get it with plain RVV and indeed we do.
>
> [repro.zip](https://github.com/user-attachments/files/18620035/repro.zip)
>
> Shouldn't be necessary, but this reproduces it early on when bootstrapping LLVM (x86-64 host, cross-compiling for RISCV rva23u64 - this could be simplified, it's just adapted from what we do in CI):
>
> ```
> cd llvm-project
> mkdir -p build && cd build
> mkdir -p stage1 stage1.install stage2
> printf "!!!!!!!!!! Building stage 1 !!!!!!!!!!\n"
> cd stage1
> cmake -G Ninja \
> -DCMAKE_BUILD_TYPE=Release \
> -DLLVM_ENABLE_ASSERTIONS=True \
> -DLLVM_LIT_ARGS="-v" \
> -DCMAKE_INSTALL_PREFIX=../stage1.install \
> -DCMAKE_C_COMPILER=clang \
> -DCMAKE_CXX_COMPILER=clang++ \
> -DLLVM_ENABLE_LLD=True \
> -DLLVM_TARGETS_TO_BUILD="RISCV" \
> -DCMAKE_C_COMPILER_LAUNCHER=ccache \
> -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
> -DLLVM_ENABLE_PROJECTS="lld;clang;clang-tools-extra;llvm" \
> ../../llvm
> ninja
> printf "!!!!!!!!!! Installing stage 1 !!!!!!!!!!\n"
> ninja install
> cd ../stage2
> printf "!!!!!!!!!! Building stage 2 !!!!!!!!!!\n"
> cat - <<EOF > stage1-toolchain.cmake
> set(CMAKE_SYSTEM_NAME Linux)
> set(CMAKE_SYSROOT $HOME/rvsysroot)
> set(CMAKE_C_COMPILER_TARGET riscv64-linux-gnu)
> set(CMAKE_CXX_COMPILER_TARGET riscv64-linux-gnu)
> set(CMAKE_C_FLAGS_INIT "-march=rva23u64")
> set(CMAKE_CXX_FLAGS_INIT "-march=rva23u64")
> set(CMAKE_LINKER_TYPE LLD)
> set(CMAKE_C_COMPILER $(pwd)/../stage1.install/bin/clang)
> set(CMAKE_CXX_COMPILER $(pwd)/../stage1.install/bin/clang++)
> set(CMAKE_C_COMPILER_LAUNCHER ccache)
> set(CMAKE_CXX_COMPILER_LAUNCHER ccache)
> set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
> set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
> set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
> set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
> EOF
> cmake -G Ninja \
> -DCMAKE_BUILD_TYPE=Release \
> -DLLVM_ENABLE_ASSERTIONS=True \
> -DLLVM_LIT_ARGS="-v" \
> -DLLVM_NATIVE_TOOL_DIR=$(pwd)/../stage1.install/bin \
> -DLLVM_BUILD_TESTS=True \
> -DLLVM_ENABLE_PROJECTS="lld;clang;clang-tools-extra;llvm" \
> -DCMAKE_TOOLCHAIN_FILE=$(pwd)/stage1-toolchain.cmake \
> -DLLVM_HOST_TRIPLE=riscv64-linux-gnu \
> ../../llvm
> ninja
> ```
Thanks Alex, reproducer was enough to locate and fix the bug
https://github.com/llvm/llvm-project/pull/123360
More information about the llvm-commits
mailing list