使用插入的指令是否必要

时间:2014-11-02 17:05:06

标签: llvm llvm-ir

在LLVM中,如果我们通过LLVM Pass在LLVM IR中插入一些指令,那么我们必须插入一条指令,该指令将使用我们先前插入的指令的结果,或者我们必须将插入的指令的结果存储到LLVM IR中已经存在的一些变量并非无用。

例如我不能插入指令

%result = add i32 4 3

和%结果未在后续说明中使用。

2 个答案:

答案 0 :(得分:0)

你应该能够插入它,但是如果在你的传球后运行优化传球,它可能会被淘汰,因为它未使用且没有副作用。

答案 1 :(得分:0)

不,这绝对没有必要。如果正确插入指令(即正确使用API​​),则可以不使用它。

事实上,未使用的值也可以通过各种优化传递来保留。 LLVM还有其他通道,如DCE(死代码消除),它将删除未使用的指令。