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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits