Skip to content

Commit afb6bd5

Browse files
kito-chengSteelskin
authored andcommitted
[RISCV] Refactor RVV builtin code generation for reduce compilation time [NFC] (llvm#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 llvm#88368
1 parent 8893317 commit afb6bd5

File tree

2 files changed

+1022
-689
lines changed

2 files changed

+1022
-689
lines changed

0 commit comments

Comments
 (0)