2

が与えられたllvm.dbg.declare場合、その llvm 値を取得するにはどうすればよいですか?

例えば

call void @llvm.dbg.declare(metadata !{i32** %r}, metadata !23), !dbg !24

i32** %rメタデータではなく、値を取得したい!{i32** %r}

コードを教えてください!

ありがとう!

4

2 に答える 2

1

metadata !{i32** %r}call 命令i32** %rの第 1 オペランドであり、メタデータの第 1 オペランドです。したがって、次のようなものが機能するはずです。

CallInst I = ... // get the @llvm.dbg.declare call
Value* referredValue = cast<MDNode>(I->getOperand(0))->getOperand(0);
于 2013-11-13T07:21:36.043 に答える