在 LLVM IR 中,我如何打印一个未命名值的名称,该值表示为一个无符号数值,其前缀如 %2?
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?
我想打印出用 LLVM IR 编写的指令(用于练习),我有一个像这样的 BitCastInst:
%0 = bitcast [32xi32]* %reg to i8*
在这种情况下,如何打印它的未命名值 %0
的左值名称?
这些名称并不真正存在于 IR 的内存表示中——在那里,值只是使用指针引用其他值。名称在写出时被计算并添加到文本形式中。这是有道理的,因为转换不断地操纵 IR,并且每当在某处插入指令时必须去更新所有名称将是昂贵的。
您可以查看 AsmWriter
的源代码来验证这一点 -- the incrementing numbers are assigned by the SlotTracker
here, and here's the code that that prints out an instruction line in the IR, using the name if it's present or the slot number if not.
我想打印出用 LLVM IR 编写的指令(用于练习),我有一个像这样的 BitCastInst:
%0 = bitcast [32xi32]* %reg to i8*
在这种情况下,如何打印它的未命名值 %0
的左值名称?
这些名称并不真正存在于 IR 的内存表示中——在那里,值只是使用指针引用其他值。名称在写出时被计算并添加到文本形式中。这是有道理的,因为转换不断地操纵 IR,并且每当在某处插入指令时必须去更新所有名称将是昂贵的。
您可以查看 AsmWriter
的源代码来验证这一点 -- the incrementing numbers are assigned by the SlotTracker
here, and here's the code that that prints out an instruction line in the IR, using the name if it's present or the slot number if not.