我想看看Rust編譯器生成的LLVM。更好的辦法是將它轉儲出LLVM並停止。這可能是位碼格式或彙編文本。如何讓Rust編譯器將其生成的LLVM轉儲出來?
2
A
回答
6
可以傳遞要--emit
例如格式
rustc --emit=asm,llvm-bc,llvm-ir xxx.rs
或
cargo rustc -- --emit=asm,llvm-bc,llvm-ir
更多信息,請參閱rustc --help
2
要快速訪問無論是LLVM IR或x86_64裝配,Playground(和alternate Playground)具有 「LLVM」 和「ASM 「按鈕用適當的選項調用編譯器。
+0
很酷。非常感謝。 – rocky
1
您可以操縱RUSTFLAGS
環境變量,然後進行構建,像
RUSTFLAGS="--emit=llvm-ir" cargo build
,如果你要構建命令,沒有直接訪問(這很有用。比如,當你構建類似Servo,它使用一個名爲mach
的抽象構建工具)。
我知道這是一個邊緣案例,但我發現它試圖獲得伺服代碼的IR轉儲時很有用。
相關問題
- 1. 如何將前端寫入LLVM以生成編譯器
- 2. 如何讓Rust編譯器解析std導入?
- 3. 如何使鐺編譯成LLVM IR
- 4. 爲什麼我的編譯器生成的llvm IR是segfaulting
- 5. 如何在Rust中轉儲完整的編譯器屬性列表?
- 6. Rust如何編譯爲機器碼?
- 7. GDB +另一個編譯器生成的核心轉儲文件
- 8. 如何讓Java編譯器在編譯代碼中生成行號碼
- 9. LLVM編譯器2.0錯誤?
- 10. 將GCC makefile腳本轉換爲LLVM 3.0編譯器
- 11. 執行從Rust/Python源代碼生成的LLVM IR代碼
- 12. 如何生成LLVM位碼
- 13. 什麼語言被用來編寫Rust編譯器?
- 14. javax.tools編譯器生成JAR
- 15. 生成編譯器enum.ordinal
- 16. 編譯llvm時llvm [n]的含義,其中n是整數
- 17. 如何讓AngularJS編譯指令生成的代碼?
- 18. LLVM中編譯器和編譯器驅動程序的區別?
- 19. 基於LLVM的編譯器的語言
- 20. 生成C#編程和編譯...發出
- 21. 如何將所有權轉讓給Rust的C代碼?
- 22. 如何編譯一個Rust庫來定位asm.js?
- 23. `enable_if`如何讓編譯器難以生成可讀的錯誤消息?
- 24. 前端到基於LLVM的編譯器
- 25. 使用llvm編譯器的提示
- 26. Rust編譯器支持中斷
- 27. 如何在使用Bazel編譯項目時生成llvm ir binary(.bc)?
- 28. 如何讓gcc(或llvm)從OSX命令行生成ARM代碼?
- 29. LLVM 5.0編譯器是否等同於GCC編譯器?
- 30. 來自clang/llvm編譯器的重複符號錯誤
非常感謝。我不知道我在運行'--help'並嘗試了各種'-C'和'-Z'選項時該如何錯過。 – rocky