diff options
| author | Kito Cheng <kito.cheng@sifive.com> | 2025-08-26 08:57:11 +0800 |
|---|---|---|
| committer | Tom Stellard <tstellar@redhat.com> | 2025-09-22 18:05:55 -0700 |
| commit | 77a3b0eda3610cdda11a9f2bdeda18dc4e49bc95 (patch) | |
| tree | 1a85446689d386aa46b4009b7d9e24e795b600c9 /llvm/lib/Analysis/ScalarEvolution.cpp | |
| parent | f14551dbc4e8b698f59a5757446d5af12880547f (diff) | |
[RISCV] Refactor RVV builtin code generation for reduce compilation time [NFC] (#154906)
Extract ManualCodegen blocks from riscv_vector.td to dedicated helper
functions in RISCV.cpp to improve compilation times and code
organization.
This refactoring:
- Reduces riscv_vector_builtin_cg.inc from ~70,000 lines to ~30,000
lines
- Extracts lots of ManualCodegen blocks into helper functions in
RISCV.cpp
- Moves complex code generation logic from TableGen to C++
- Marks extracted functions with LLVM_ATTRIBUTE_NOINLINE to prevent
excessive inlining in EmitRISCVBuiltinExpr's large switch statement,
which would cause compilation time to increase significantly
Performance Impact on AMD Ryzen 9 3950X 16-Core with SSD (Release build)
with GCC 11:
Before: real 1m4.560s, user 0m0.529s, sys 0m0.175s
After: real 0m22.577s, user 0m0.498s, sys 0m0.152s
Which reduced around 65% of compilation time.
During this refactoring, I also found few more opportunities to optimize
and simplify the code generation logic, but I think leave to next PR
since it already change a lot of code.
Fix #88368
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp')
0 files changed, 0 insertions, 0 deletions
