BeMg wrote:
> * Updating clang tests to exercise this logic.
> * Actually running it at all. I did not build compiler-rt, and thus all my
> checking was of generated asm/IR.
Maybe we could compile the test code with
`compiler-rt/lib/builtins/riscv/feature_bits.c` manually. Then we could get rid
of copmiler-rt building during running the `__builtin_cpu_init` and
`__builtin_cpu_supports` actually.
Actually, I tried this patch in my local, and it work well.
---
Here is build script for compiler-rt, if you want to build compiler-rt.
```
cmake -DCMAKE_C_COMPILER_TARGET="riscv64-unknown-linux-gnu" \
-DCMAKE_ASM_COMPILER_TARGET="riscv64-unknown-linux-gnu" \
-DCMAKE_AR=./path/to/llvm/install/bin/llvm-ar \
-DCMAKE_C_COMPILER=./path/to/llvm/install/bin/clang \
-DCMAKE_NM=./path/to/llvm/install/bin/llvm-nm \
-DCMAKE_RANLIB=./path/to/llvm/install/bin/llvm-ranlib \
-DCOMPILER_RT_BUILD_BUILTINS=ON \
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
-DCOMPILER_RT_BUILD_PROFILE=OFF \
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
-DCOMPILER_RT_BUILD_XRAY=OFF \
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
-DLLVM_CONFIG_PATH=./path/to/llvm/install/bin/llvm-config \
-G "Ninja" ../compiler-rt
ninja
# Put the `libclang_rt.builtins-riscv64.a` in correct path
cp ./path/to/build/lib/linux/* ./path/to/llvm/install/lib/clang/19/lib/linux
```
```
# Compile using compiler-rt
clang -march=rv64imafd -rtlib=compiler-rt test.c
```
> * Investigate claims from gcc docs that __builtin_cpu_init is called early in
> process lifetime with high priority constructor. I did not find this with
> some quick searching.
https://github.com/llvm/llvm-project/pull/99700
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits