我开始使用llvm玩语言。在经历了万花筒教程之后,我很好奇,LLVM如何表示,操纵x86标志寄存器?
如果有溢出,进位或任何其他状态,我如何在IR中达到该状态并使用它?
答案 0 :(得分:2)
x86标志和状态寄存器是非常特定于目标的,当然不应在LLVM IR中建模-它太低级。可以通过llvm.uadd.with.overflow
等以相同于目标的方式对相同的概念进行建模。
此外,请记住,LLVM IR通常采用SSA格式,因此说明很容易例如如果最终值相同,则重新排列。但是,此操作将不会使x86标志寄存器保持相同。