在LLVM IR,如何可以打印其被表示为与它们的前缀如2%的无符号数值的一个值无名的名字?(In L

2019-10-23 07:35发布

我想打印出写在LLVM IR(实践)的说明,我有一个BitCastInst这样的: %0 = bitcast [32xi32]* %reg to i8*

如何打印左值,它是一个未命名值名称%0在这种情况下?

Answer 1:

这些名字并不真正存在于IR的内存中表示 - 在那里,只值是指使用指针其他值。 该名计算,并添加到文本形式,因为它是被写出来。 这是有道理的,因为变换不断操纵IR,这将是不得不去和更新所有每当指令被插入的地方的名字昂贵。

你可以看一下源为AsmWriter验证这一点- 在递增的数字由指定SlotTracker这里 ,和这里的代码,打印出的IR的指令线,使用的名称,如果它的存在,或者插槽号不是 。



文章来源: In LLVM IR, how can I print the name of a unnamed value which is represented as an unsigned numeric value with their prefix such as %2?