compiler-construction - LLVM 无操作指令?

标签 compiler-construction llvm compiler-optimization

我正在为具有空语句的语言编写一个编译器。
对于像 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/

相关文章:

gcc - 修改gcc以容纳更多寄存器

c++ - 向 C++ 源代码添加注释语法

c - C 中的词法和语义错误

java - 条件 JIT 编译

llvm - 无法在 Ubuntu 16.04 上安装 llvm-9 或 clang-9

c++ - 为什么我必须为 LLVM 链接这些库两次?

objective-c - 动态转发 : suppress Incomplete Implementation warning

C++:可以将 "try { foo(); } catch (...) { throw; }"优化为 "foo();"吗?

c++ - 本地实现的接口(interface)引用

c - 在 IAR MSP430 编译器中将优化设置为高时会发生指令的疯狂执行