《4.RISC-V工具链的进化之路:回顾与展望.pdf》由会员分享,可在线阅读,更多相关《4.RISC-V工具链的进化之路:回顾与展望.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、Kito ChengRISC-V 工具鏈的進化之路:工具鏈的進化之路:回顧與展望回顧與展望The Evolution of the RISC-V Toolchain:A Year in Review and the Road Ahead2Collaborative Effort Across the Ecosystem-Maintainers and contributors come from many companies-The strength of the RISC-V toolchain comes from the community behind it.PLCT Lab3What
2、s New in Last GCC/LLVM Toolchain Release-More Stable Vectorization Support-New Extension Support-Profile Support for-march-Function Multiversioning4More Stable Vectorization Support-GCC:-GCC 14:First version with auto-vectorization support for RISC-V-GCC 15:Broader support and many bug fixes-LLVM:-I
3、ntroduced vector-specific optimizations(e.g.,VLOpt)-Improved vector code generation-See also-Igalia Blog LLVM Vector Codegen Improvements-https:/ miss this afternoons session:“Introduce the implementation of LLVM Loop Vectorizer”5New Extension Support-Control-Flow Integrity(CFI):-Zicfilp,Zicfiss-Ful
4、l CFI support is still in progress-Atomics-New extension:Zabha-S-mode Extensions-Many supervisor-level extensions are now supported(not listed individually)-All extensions from RVA23 and RVB23 has supported!6Profile Support for-march-GCC and LLVM now support profile-based-march syntax-(GCC must wait
5、 until GCC 16)-Syntax:-march=_-e.g.-march=rva23u64_zbkb-Profiles provide a short form for common sets of extensions-Example:-march=rva23u64 instead of-march=rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_.(and so on)7Function Multiversioning-RISC-V now supports the following function attributes!-_attribute_
6、(target(.)-_attribute_(target_clone(.)-_attribute_(target_version(.)-Enables function multiversioning choose the best implementation at runtime-Similar to what is available on AArch64 and x86-Target strings may include extensions like zve64d,zbb,etc.-Spec detail here:-https:/ Multiversioning:target-