Rust是否支持保存编译器优化记录?及相关命令报错咨询
Rust 输出编译器优化信息的方法
在C语言中,可通过以下命令输出编译器优化信息:
clang -O2 main.c -o main -fsave-optimization-record
你想知道Rust是否具备类似选项,用来查看函数内联、参数优化等细节,尝试执行以下命令时失败:
cargo rustc -- -C llvm-args=-fsave-optimization-record
报错信息如下:
rustc -Cllvm-args="..." with: Unknown command line argument '-fsave-optimization-record'. Try: 'rustc -Cllvm-args="..." with --help'
解决方法
Rust确实支持输出LLVM优化记录,但需要调整参数格式,同时确保在优化模式下编译(默认debug模式优化程度极低):
- 针对Cargo项目的正确命令
cargo rustc --release -- -C llvm-args="-fsave-optimization-record"
- 直接用rustc编译单文件
rustc -O main.rs -C llvm-args="-fsave-optimization-record"
执行后会生成一个与输出二进制文件同名、后缀为.opt.yaml的文件,里面包含函数内联、参数传递优化、死代码消除等所有LLVM执行的优化细节。
另外,也可以使用-C save-temps选项保留编译中间文件(包括LLVM IR),辅助分析优化过程:
cargo rustc --release -- -C save-temps
内容的提问来源于stack exchange,提问作者super_jh
相关产品推荐
相关产品推荐

