我正在为具有空语句的语言编写一个编译器。
对于像 if-then-else 这样的结构,如果我可以在 llvm 中使用 no-op 语句会很方便,但我没有找到任何“官方”nop。我有一些想法,但理想情况下,我希望 llvm 优化那部分代码并删除指令;有什么建议吗?
最佳答案
IR 中没有无操作操作码。但是你可以安全地使用任何无副作用的死指令作为替代(也就是说,如果你真的需要发出一个无操作),因为优化器会很容易地删除它们。例如。 %nop = add i1 0, 0
或 %nop = alloca i1, i1 0
可以工作。
关于compiler-construction - LLVM 无操作指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188045/