[llvm-dev] Convert Register Names to String

Tim Northover via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 12 01:39:25 PST 2018


Hi Ahmad,

On Sun, 11 Nov 2018 at 13:39, Ahmad Nouralizadeh Khorrami via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I want to do a cutomized points-to analysis on IR. Suppose that we have:
> %91 = bitcast i8* %90 to %struct.demux_packet*, !dbg !2688
>
> I want to store sth similar to %91 -> target of %90, which records the target of pointer named %91. How can I access the names (Here, %90 and %91)?

Unfortunately it's not trivial. You can see the logic used in
AssemblyWriter::printInstruction (in lib/IR/AsmWriter.cpp).

It boils down to using Instruction::getName if it exists, otherwise
there's a special class called ModuleSlotTracker (the "Machine"
instance in that function) that gives each unnamed value a number.
You'd have to create one of those yourself; I had a quick look at the
header and it actually seems pretty easy to use, which was a pleasant
surprise.

Cheers.

Tim.


More information about the llvm-dev mailing list