[llvm] [SLP]Reduce number of alternate instruction, where possible (PR #123360)

Alex Bradbury via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 31 06:46:54 PST 2025


asb 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):

```
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
```


https://github.com/llvm/llvm-project/pull/123360


More information about the llvm-commits mailing list