3 ms·
Well, I've just profiled the incremental compilation of a 4.8k lines Rust project (using the `self-profile` option); top three offenders: - LLVM_module_codegen
by pizza234 6y ago
Well, I've just profiled the incremental compilation of a 4.8k lines Rust project (using the `self-profile` option); top three offenders:
- LLVM_module_codegen_emit_obj: 47% of the time
- LLVM_passes: 16%
- codegen_module: 15%
Sample of Rust-specific passes:
- MIR_borrow_checking: 0.2%
- resolve_lifetimes: 0.0%
The two passes above are arbitrarily picked, but anything other than the top three takes cumulatively 22% of the time.
Based on this, the Rust IR generation and LLVM are the bottleneck. I'd be interested in the opinion of somebody knowledgeable, since there may be non-obvious mistakes in the above reasoning.
- steveklabnik 6y agoThis is a pretty common shape of the measurement, yes.
- vijaybritto 6y agoHello Steve, I hope you're well and baking more breads for Christmas!
- steveklabnik 6y agoThanks! I am working on two loaves right now, haha!