Making LLVM RISC-V Compiler More Performant for Everyone
summary
LLVM RISC-V work targets concrete wins: add an out-of-order scheduling model (upstream has only Rocket, SiFive S7 and a 32-bit MCU model; ARM has 20+), implement GlobalISel beyond integers, and build multiple RVV auto-vectorizers plus tuned cost models (iterate kernels, compare estimated vs measured speedups, improve Pearson correlation and reduce false positives/negatives). Uncounted loops already vectorize on hardware using RVV fault-only-first loads (string-compare example works), and combine static MCA + dynamic tracing to predict real performance.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 0:11Overview
- 2:00Community Contributions
- 2:58Scheduling Models
- 4:16Why more scheduling models
- 5:21Global instruction selection
- 7:05Autovectorization
- 8:57Cost Model
- 11:09Vectorization
- 12:26String Compare
- 14:30Polyal
- 15:35CompPower
- 16:35Summary
related talks
16mImprovements to RISC-V Vector code generation in LLVM
17mUnlocking 15% More Performance: A Case Study in LLVM Optimization for RISC-V
19mGetting the Most out of the LLVM Auto Vectorizer for RISC-V Vectors (RVV)
17mRecent Developments in Optimizing Compilers for RISC-V
28mLLVM for RISCV
24mRISC V LLVM: Towards A Production-Ready LLVM-Based Toolchain
21mOpen Source Compiler Tool Chains for RISC V Past, Present and Future
17mRISC-V LLVM State of the Union
