使用debug info将Rust编译为WebAssembly时速度可能慢40倍,原因是LLVM的一个未完全修复的bug。问题源于重度内联导致DBG_VALUE记录大量增加,而WebAssembly的栈式架构需要额外的寄存器到栈的搬移操作。
背景
LLVM存在一个已知bug,DBG_VALUE调试信息记录在代码生成过程中处理效率低下。该问题已为clang修复,但对WebAssembly目标尚未完全解决。
- 来源
- Lobsters
- 发布时间
- 2026年8月20日 20:32
- 评分
- 6.0 / 10
使用debug info将Rust编译为WebAssembly时速度可能慢40倍,原因是LLVM的一个未完全修复的bug。问题源于重度内联导致DBG_VALUE记录大量增加,而WebAssembly的栈式架构需要额外的寄存器到栈的搬移操作。
LLVM存在一个已知bug,DBG_VALUE调试信息记录在代码生成过程中处理效率低下。该问题已为clang修复,但对WebAssembly目标尚未完全解决。