immunant / c2rust

Migrate C code to Rust
https://c2rust.com/
Other
3.95k stars 234 forks source link

Evaluate Profile-Guided Optimization (PGO) #989

Closed zamazan4ik closed 1 year ago

zamazan4ik commented 1 year ago

Hi!

Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects. The results are here. LLVM-related results are here.

Since PGO showed measurable improvements in compiler-like loads (Clang, Clangd, clang-format, GCC, Rustc, etc.) I think it could be useful to check PGO on c2rust too.

We need to perform PGO benchmarks on C2Rust. And if it shows improvements - add a note about possible improvements in C2Rust performance with PGO. Providing an easier way (e.g. a build option) to build scripts with PGO can be useful for the end-users too.

fw-immunant commented 1 year ago

C2Rust isn't generally the bottleneck in any workflow we're aware of, and hasn't been optimized carefully beyond generally trying to avoid obvious O(n^2) pitfalls. I don't think PGO is in scope until specific performance concerns have been identified.