我希望能够查看Rust编译器生成的LLVM。最好的情况是能够让它仅输出LLVM然后停止。这可以以位码格式或者汇编文本形式呈现。
--emit
传递你想要的格式。rustc --emit=asm,llvm-bc,llvm-ir xxx.rs
或cargo rustc -- --emit=asm,llvm-bc,llvm-ir
更多信息请查看rustc --help
RUSTFLAGS
环境变量,然后执行构建,例如:RUSTFLAGS="--emit=llvm-ir" cargo build
如果您没有直接访问构建命令的权限(例如,当您正在构建像 Servo 这样使用抽象的构建工具 mach
时),这将非常有用。
我知道这更多是一个边缘情况,但当我尝试获取 Servo 代码的 IR 转储时,我发现它很有用。
如果要快速访问LLVM IR或x86_64汇编,可以使用Playground(和备用Playground)上的“LLVM”和“ASM”按钮,这样就会调用编译器并带有相应的选项。
--help
并尝试各种-C
和-Z
选项时错过了那个。 - rocky