Hacker News new | ask | show | jobs
by pizza234 2015 days 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.

1 comments

This is a pretty common shape of the measurement, yes.
Hello Steve, I hope you're well and baking more breads for Christmas!
Thanks! I am working on two loaves right now, haha!